标签:
struts2与struts很大的不同点在于,struts的execute方法提供了HttpServletRequest和 HttpServletResponse方法在获取客户端提交的数据信息的时候需要使用HttpServletRequest.getParameter()方法,并且还需要进行必要的数据类型转换。如何客户端提交的数据量大的时候,我们则需要写很多的getParameter方法。这样代码量就相应的增加不少。但是struts2为我们提供了属性驱动和模型驱动,它不需要我们写很多的获取值的方法。而只需要我们在Action中定义相应的getter方法,在界面上以Action中的变量名作为表单元素的name属性值即可。
对于属性驱动,我们需要在Action中定义与表单元素对应的所有的属性,因而在Action中会出现很多的getter和setter方法
对于模型驱动,使用的Action对象需要实现ModelDriven接口并给定所需要的类型.而在Action中我们只需要定义一个封装所有数据信息的javabean
当我们使用属性驱动和模型驱动的时候,必须将表单的元素中的name属性值与我们定义接收数据信息的变量名对应起来。
对于属性驱动的实现是非常简单的 ,实例如下:
action:
JSP:(register.jsp)
<div> <form action="/struts2/register.action" method="post"> <table width="80%" align="center"> <tr> <td>UserName:</td> <td><input type="text" name="pname" id="pname"/> </td> </tr> <tr> <td>PassWord:</td> <td><input type="text" name="address" id="address"/></td> </tr> <tr> <td>Age:</td> <td><input type="text" name="age" id="age"/></td> </tr> <tr> <td>Date</td> <td><input type="text" name="date" id="date"/></td> </tr> <tr> <td colspan="2"><input type="submit" value="submit"/></td> </tr> </table> </form> </div>
//其他配置信息,相同
1.所属的Action需要实现ModelDriven接口,并且给定类型和实现接口中的getModel方法(其实就是简单的返回泛型的一个对象)
2.需要一个封装所有属性的javabean(对应 1.中的给给定类型)
3.在struts.xml文件中描述此Action的地方让该Action实现一个拦截器 (ModelDrivenInterceptor)
:具体实例如下:
JavaBean(person)
package org.viancent.domain; import java.util.Date; public class Person { private String pname; private int page; private String address; private Date date; public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getPname() { return pname; } public void setPname(String pname) { this.pname = pname; } public int getPage() { return page; } public void setPage(int page) { this.page = page; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } }
Action:(RegisterAction)
struts.xml:
JSP(register.jsp)
标签:
原文地址:http://www.cnblogs.com/duanxz/p/5444805.html