struts2数据封装(九)

来源:互联网 发布:知柏地黄丸 性早熟 编辑:程序博客网 时间:2024/06/06 03:43

分属性和模型两种方式

一、属性驱动有两种方式。

1、直接在Action类中定义相对应的字段,提供set方法。

然后,前端页面,直接传入对应的属性。

比如:

public class Regist1Action extends ActionSupport {private String username;private String password;private Integer age;@Overridepublic String execute() throws Exception {System.out.println(username + " " + password + " " + age);return NONE;}public void setUsername(String username) {this.username = username;}public void setPassword(String password) {this.password = password;}public void setAge(Integer age) {this.age = age;}}
<form action="${ pageContext.request.contextPath }/regist1.action"method="post">姓名:<input type="text" name="username" /><br /> 密码:<input type="password" name="password" /><br /> 年龄:<input type="password" name="age" /><br /> <input type="submit" value="注册" /></form>

2、在Action类中定义java bean,属性封装到java bean中。

然后,前端页面,用ongl表达式。bean.属性。

比如:

public class User {private String username;private String password;private Integer age;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User [username=" + username + ", password=" + password + ", age=" + age + "]";}}
public class Register2Action extends ActionSupport {private User user;public User getUser() {return user;}public void setUser(User user) {this.user = user;}@Overridepublic String execute() throws Exception {System.out.println(user);return NONE;}}
<form action="${ pageContext.request.contextPath }/regist2.action"method="post">姓名:<input type="text" name="user.username" /><br /> 密码:<input type="password" name="user.password" /><br /> 年龄:<input type="password" name="user.age" /><br /> <input type="submit" value="注册" /></form>

二、模型驱动

/** * 模型驱动的方式  * 实现ModelDriven接口  * 必须要手动实例化对象(需要自己new) */public class Regist3Action extends ActionSupport implements ModelDriven<User> {// 必须手动实例化private User user = new User();// 获取模型对象@Overridepublic User getModel() {return user;}@Overridepublic String execute() throws Exception {System.out.println(user);return NONE;}}
<form action="${ pageContext.request.contextPath }/regist3.action"method="post">姓名:<input type="text" name="username" /><br /> 密码:<input type="password" name="password" /><br /> 年龄:<input type="password" name="age" /><br /> <input type="submit" value="注册" /></form>

实际开发中:直接在Action类中定义相对应的字段,提供set方法 和 模型驱动 用的比较多


三、集合List

/** * 属性驱动的方式,把数据封装到List集合中 */public class Regist4Action extends ActionSupport {private static final long serialVersionUID = -7567275964736686269L;private List<User> list;public List<User> getList() {return list;}public void setList(List<User> list) {this.list = list;}@Overridepublic String execute() throws Exception {for (User user : list) {System.out.println(user);}return NONE;}}
<h3>向List集合封装数据(默认情况下,采用的是属性驱动的方式)</h3><!-- 后台:List<User> list --><form action="${ pageContext.request.contextPath }/regist4.action" method="post">姓名:<input type="text" name="list[0].username" /><br /> 密码:<input type="password" name="list[0].password" /><br /> 年龄:<input type="password" name="list[0].age" /><br /> 姓名:<input type="text" name="list[1].username" /><br /> 密码:<input type="password" name="list[1].password" /><br /> 年龄:<input type="password" name="list[1].age" /><br /> <input type="submit" value="注册" /></form>

四、集合Map

/** * 属性驱动的方式,把数据封装到Map集合中 */public class Regist5Action extends ActionSupport {private static final long serialVersionUID = -5650712704292303969L;private Map<String, User> map;public Map<String, User> getMap() {return map;}public void setMap(Map<String, User> map) {this.map = map;}@Overridepublic String execute() throws Exception {System.out.println(map);return NONE;}}
<h3>向Map集合封装数据(默认情况下,采用的是属性驱动的方式)</h3><!-- 后台:List<User> list --><form action="${ pageContext.request.contextPath }/regist5.action" method="post">姓名:<input type="text" name="map['one'].username" /><br /> 密码:<input type="password" name="map['one'].password" /><br /> 年龄:<input type="password" name="map['one'].age" /><br /> 姓名:<input type="text" name="map['two'].username" /><br /> 密码:<input type="password" name="map['two'].password" /><br /> 年龄:<input type="password" name="map['two'].age" /><br /> <input type="submit" value="注册" /></form>

源码地址




原创粉丝点击