浅谈Struts2的属性驱动和模型驱动
来源:互联网 发布:天威网络好不好 编辑:程序博客网 时间:2024/06/05 20:05
一直在用Struts2实现MVC,因为相比于Struts1中大量使用request.getparameter在页面上获取值,struts2则提供了属性驱动和模型驱动处理了这一问题。通过这两个驱动,我们在action中定义getter方法,表单元素中的name值只需和action中的变量名一直即可。
在jsp中代码:一、属性驱动(property-driven) 对于属性驱动,我们在action中定义与表单元素对应的所有属性并提供getter和setter方法。示例如下:
在action代码:
public class StudentAction extends ActionSupport { private String sname; //姓名 private int age; //年龄 private float score; //分数 public String getSname() { return sname; } public void setSname(String pname) { this.sname = sname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public float getScore() { return score; } public void setScore(float score) { this.score = score; } @Override public String execute() throws Exception { return SUCCESS; } }<form action="/struts2/load.action" method="post"> <table align="center"> <tr> <td>姓名:</td> <td><input type="text" name="sname" id="sname"/></td> </tr> <tr> <td>年龄:</td> <td><input type="text" name="age" id="age"/></td> </tr> <tr> <td>分数</td> <td><input type="text" name="score" id="score"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="submit"/></td> </tr> </table> </form>二、模型驱动(morden-driven)对于模型驱动,首先需要一个封装所有属性的javabean,其次所属的action需要实现modeldriven接口,并需要getModel()方法,最后还需要在Struts.xml文件中配置该action的modeldriven拦截器,jsp页面不用改变
- 创建Javabean,以student为例
<span style="font-family: Arial, Helvetica, sans-serif;"> private String sname; //姓名</span>private int age; //年龄 private float score; //分数 public String getSname() { return sname; } public void setSname(String pname) { this.sname = sname; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public float getScore() { return score; } public void setScore(float score) { this.score = score; } }- 创建action,实现modeldriven接口
public class StudentAction extends ActionSupport implements ModelDriven<Student>{ private Student student=new Student(); public Student getStudent() { return student; } @Override public Student getModel() { return student; } @Override public String execute() throws Exception { return SUCCESS; } }</pre><pre>- 在struts.xml文件中配置拦截器
<action name="load"class="org.test.action.LoadAction"> <result name="success">/load.jsp</result> <interceptor-ref name="model-driven"></interceptor-ref> <interceptor-ref name="defaultStack"></interceptor-ref> </action> 总结:Struts2的这两种驱动模式为我们对视图层和模型层的数据交互提供了一大便利,若有兴趣的话,不妨研究下源码实现机制,大家可以一起交流下!
1 0
- 浅谈Struts2的属性驱动和模型驱动
- Struts2的属性驱动和模型驱动
- Struts2的属性驱动和模型驱动
- Struts2的模型驱动和属性驱动
- struts2的属性模型和驱动模型
- struts2的属性驱动和模型驱动的区别
- struts2 属性驱动 和模型驱动
- struts2属性驱动和模型驱动
- Struts2属性驱动和模型驱动详解
- Struts2模型驱动和属性驱动
- Struts2中的属性驱动和模型驱动
- Struts2的属性驱动原理和模型驱动原理
- Struts2的属性驱动与模型驱动
- struts2属性驱动,模型驱动
- struts2学习笔记-模型驱动和属性驱动
- Struts2的属性驱动与模型驱动的区别
- Struts2的属性驱动与模型驱动的区别
- Struts2的属性驱动与模型驱动的区别
- MySQL空值与非空
- uploadfiy插件文件上传后,并显示上传的图片
- Linux 下 strace 命令用法总结
- c 语言的 While 没有花括号的用法
- Android仿淘宝详情页实现上下翻页
- 浅谈Struts2的属性驱动和模型驱动
- android 利用dwonLoadManager 实现apk下载更新
- Linux内核源码分析--内核启动
- eclipse 安卓项目导入library失败
- 安装gerrit
- Android工程师面试题大全
- Altibase新数据库管理信息系统上市 可快速处理大容量数据
- AOP和面向切面编程
- 【leetcode】20. Valid Parentheses