Struts2 的ModelDriven 一 —— 传值
来源:互联网 发布:功率串联和并联的算法 编辑:程序博客网 时间:2024/06/15 08:36
一、传值方式——两种
Struts2 和页面进行值交互的方式有两种:属性驱动,模型驱动
属性驱动:
1、在action中定义很多页面需要的属性及其对应的getter,setter方法。
2、前台取值写对应的属性名称
——————明显不可取,不做解释。
模型驱动:
1、在action中定义实体,实现 ModelDriven接口,实现getModel()方法。
2、前台取值写对应的属性名称
——————合理。
其实还有一种,介于两者之间。
1、在action中定义实体,写getter,setter方法。
2、前台取值写:实体.属性名称。
下面分别是三种方式的演示:
实体类如下:
public class User { private int id; private String username; private String password; private int age; private String address; 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public int getId() { return id; } public void setId(int id) { this.id = id; }}
第一种:
public class UserAction { private int id; private String username; private String password; private int age; private String address; public String add(){ User user = new User(); user.setId(id); user.setUsername(username); user.setPassword(password); user.setAge(age); user.setAddress(address); new UserManager().addUser(user); return "success"; } public int getId() { return id; } public void setId(int id) { this.id = id; } 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 int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; }}
JSP中写法
<form action="test/user.action" method="post"> <input type="hidden" name="method:add"> username:<input type="text" name="username"> <br/> password:<input type="text" name="password"> <br/> age:<input type="text" name="age"> <br/> address:<input type="text" name="address"> <br/> <input type="submit" name="submit" value="添加用户"></form> <br/>
第二种:
public class UserAction implements ModelDriven{ private User user; @Override public Object getModel() { if(user == null){ user = new User(); } return user; } public String add(){ new UserManager().addUser(user); return "success"; }}
jsp 中写法
<form action="test/user.action" method="post"> <input type="hidden" name="method:add"> username:<input type="text" name="username"> <br/> password:<input type="text" name="password"> <br/> age:<input type="text" name="age"> <br/> <input type="submit" name="submit" value="添加用户"></form> <br/>
第三种:
public class UserAction { private User user; public String add(){ new UserManager().addUser(user); return "success"; } public User getUser() { return user; } public void setUser(User user) { this.user = user; }}
JSP中写法:
<form action="test/user.action" method="post"> <input type="hidden" name="method:add"> username:<input type="text" name="user.username"> <br/> password:<input type="text" name="user.password"> <br/> age:<input type="text" name="user.age"> <br/> address:<input type="text" name="user.address"> <br/> <input type="submit" name="submit" value="添加用户"></form> <br/>
纵观其上,还是第二种的写法最简单,那么ModenDriven 的机制是什么呢? 看这篇博客
0 0
- Struts2 的ModelDriven 一 —— 传值
- Struts2 的ModelDriven 二——ModelDrive
- Struts2笔记——Struts2的模型驱动(ModelDriven)
- Struts2——Struts2的模型驱动(ModelDriven)
- Struts2——ModelDriven运用
- 奇妙的paramsPrepareParamsStack——Struts2中ModelDriven问题
- struts2的ModelDriven接口
- struts2的ModelDriven
- struts2的ModelDriven
- struts2的modelDriven
- struts2的ModelDriven
- Struts2的ModelDriven机制
- Struts2的ModelDriven机制
- Struts2的ModelDriven
- Struts2中ModelDriven的使用
- Struts2的模型驱动(ModelDriven)
- Struts2之ModelDriven的使用
- Struts2之ModelDriven的使用
- 函数柯里化or not
- hdu 2120 Ice_cream's world I
- 输出等腰三角形的*
- JAVA基础点汇总(三)
- python设计模式之桥接模式
- Struts2 的ModelDriven 一 —— 传值
- Incorrect string value: '' for column '' at row 1
- android开发的小知识--选择编译
- 畅通工程
- hdu 3473 Minimum Sum
- Opengl 绘图出现白板、像素不清晰的问题解决办法
- urllib2使用总结
- source、sh、bash、./执行脚本的区别
- oracle字符集乱码及返回 REF CURSOR 的存储过程执行问题