属性封装 --基本类型和String类型
条件:
1 需要有成员属性
2 需要有set方法
<h1>基本类型和String类型封装</h1>
<form action="${pageContext.request.contextPath}/servlet6" method="post">
用户名:<input type="text" name="username" />
年龄:<input type="text" name="age" />
<input type="submit" value="提交" />
</form>
package com.it.action;
import com.opensymphony.xwork2.ActionSupport;
//属性封装 --基本类型和String类型
public class ActionServlet6 extends ActionSupport{
private String name;
private int age;
public void setUsername(String name) {
this.name = name;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String execute() throws Exception {
System.out.println(name+":"+age);
return null;
}
}
属性封装 --对象类型
条件:
1 需要有成员对象
2 需要set/get方法
3 页面需要用ognl表达式 对象.属性
<h1>对象类型封装</h1>
<form action="${pageContext.request.contextPath}/servlet7" method="post">
用户名:<input type="text" name="user.username" />
年龄:<input type="text" name="user.age" />
<input type="submit" value="提交" />
</form>
package com.it.action;
import com.it.bean.User;
import com.opensymphony.xwork2.ActionSupport;
//属性封装 --对象类型
public class ActionServlet7 extends ActionSupport{
private User user;
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
@Override
public String execute() throws Exception {
System.out.println(user);
return null;
}
}
list集合封装
条件:
1 需要一个集合
2 有set/get方法即可
3 页面需要有特定的写法
list:
list[0].属性名
<h1>list类型封装</h1>
<form action="${pageContext.request.contextPath}/servlet8" method="post">
用户名:<input type="text" name="list[0].username" /><br>
年龄:<input type="text" name="list[0].age" /><br>
用户名:<input type="text" name="list[1].username" /><br>
年龄:<input type="text" name="list[1].age" /><br>
用户名:<input type="text" name="list[2].username" /><br>
年龄:<input type="text" name="list[2].age" /><br>
<input type="submit" value="提交" />
</form>
package com.it.action;
import java.util.List;
import com.it.bean.User;
import com.opensymphony.xwork2.ActionSupport;
//list集合封装
public class ActionServlet8 extends ActionSupport {
private List<User> list;
public List<User> getList() {
return list;
}
public void setList(List<User> list) {
this.list = list;
}
@Override
public String execute() throws Exception {
for (User user : list) {
System.out.println(user);
}
return null;
}
}
map集合封装
条件:
1 需要一个集合
2 有set/get方法即可
3 页面需要有特定的写法
map:
map[键名].属性名
<h1>map类型封装</h1>
<form action="${pageContext.request.contextPath}/servlet9" method="post">
用户名:<input type="text" name="map['aa'].username" /><br>
年龄:<input type="text" name="map['aa'].age" /><br>
用户名:<input type="text" name="map['bb'].username" /><br>
年龄:<input type="text" name="map['bb'].age" /><br>
用户名:<input type="text" name="map['cc'].username" /><br>
年龄:<input type="text" name="map['cc'].age" /><br>
<input type="submit" value="提交" />
</form>
package com.it.action;
import java.util.Map;
import com.it.bean.User;
import com.opensymphony.xwork2.ActionSupport;
//map集合封装
public class ActionServlet9 extends ActionSupport{
private Map<String,User> map;
public Map<String, User> getMap() {
return map;
}
public void setMap(Map<String, User> map) {
this.map = map;
}
@Override
public String execute() throws Exception {
for (String key : map.keySet()) {
System.out.println(key+":"+map.get(key));
}
return null;
}
}
模型封装 :
条件:
1 需要有成员对象 而且还得实例化这个对象
2 需要实现一个接口 ModelDriven
3 需要提供一个getModel方法
4 将对象以getModel进行返回
***** 模型驱动只能向一个实体中封装数据,如果需要向多个实体封装数据优先采用第二种方式。
user类
package com.it.bean;
public class User {
private String username;
private int age;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [username=" + username + ", age=" + age + "]";
}
}
<h1>模型封装</h1>
<form action="${pageContext.request.contextPath}/servlet6" method="post">
用户名:<input type="text" name="username" />
年龄:<input type="text" name="age" />
<input type="submit" value="提交" />
</form>
package com.it.action;
import com.it.bean.User;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
//模型封装
public class ActionServlet10 extends ActionSupport implements ModelDriven<User>{
private User user=new User();
@Override
public User getModel() {
return user;
}
@Override
public String execute() throws Exception {
System.out.println(user);
return null;
}
}