struts2 模型驱动

在servlet中获取页面传递过来的数据的方式是:request.getParameter(“username”);这个代码可以获取到页面的username的数据。在action中可以通过模型驱动的方式来获取页面的值。

例子:

Jsp页面

<form action="propertydriver/propertyDriverAction_testPropertyDriver.action" method="post">
    	用户名:<input type="text" name="username"/>
    	密码:<input type="password" name="password"/>
		<input type="submit"/>
    </form>

  

Action

public class ModelDriverAction extends ActionSupport implements ModelDriven<User>{
	private User model = new User();
	public User getModel() {
		// TODO Auto-generated method stub
		return this.model;
	}
	public String modeldriver(){
		return "modeldriver";
	}
}

  

过程为:当浏览器提交modelDriverAction_modeldriver.action请求时,先经过拦截器。其中有一个拦截器为ModelDrivenInterceptor,从这个源代码可以看出,这个拦截器的作用就是获取实现了ModelDriver接口的action的模型驱动。在这里为user。然后把模型驱动利用push方法压入到栈顶。这样我们就能直接通过属性进行回显和赋值了。

  

时间: 2025-01-12 07:30:33

struts2 模型驱动的相关文章

struts2 模型驱动的action赋值优先顺序

struts2 模型驱动的action赋值优先顺序: 1.优先设置model的属性. 2.如果model属性中没有对应的成员变量,则向上冒泡,寻找action中的属性进行set. 如果action中的成员属性不能接收请求的参数,则可以考虑是不是有这个问题:当action中的属性设置了相应的值,但是jsp页面中通过ognl表达式不能获取相应的属性值,也有可能是这个问题.

Struts2 模型驱动及页面回显

* 要从页面中获取表单元素的值,需要在动作类中声明与页面元素同名的属性.导致动作类中既有javabean又有业务方法.        * 将javabean和业务方法进行分离:        * 将重新创建一个javabean,将javabean的内容放置其中.        * 动作类action中只留业务方法        * 在动作类中声明的javabean无法从页面中获取同名的属性        * 需要使用struts2框架提供"ModelDriven(模型驱动)"     

struts2 模型驱动封装

1 使用模型驱动方式,可以直接把表单数据封装到实体类对象里面 2 实现步骤 (1)action实现接口 ModelDriven User就是你创建的实体类 (2)实现接口里面的方法 getModel方法 - 把创建对象返回 (3)在action里面创建实体类对象 3 使用模型驱动和属性封装注意问题: (1)在一个action中,获取表单数据可以属性封装,使用模型驱动封装, 不能同时使用属性封装和模型驱动封装获取同一个表单数据 如果同时使用,之后执行模型驱动

struts2中的属性驱动和模型驱动

1.Struts2的属性驱动. Struts2的属性驱动指的是在action中JSP页面的每一个form中的name都对应在action中有一个属性与之对应.看下面代码片段: <form action="register.do" name="RegisterForm" method="post"> Username:<input type="text" name="uname">&l

Struts模型驱动中文乱码!!

struts2模型驱动的中文乱码问题,只需要在tomcat的server.xml配置中修改<Connector connectionTimeout="20000" port="8088" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>就可以了.

attempt to create delete event with null entity

SSH框架删除单条数据不会报错,一条以上数据回报: java.lang.IllegalArgumentException: attempt to create delete event with null entity 在网上查到到不少解决方法,但是都解决不了.自己调试把struts2封装的ids打印出来了,结果是--ID前面多了一个空格!!! Request URL: http://localhost:8080/manager/sysadmin/userAction_delete Form D

程序员开发书籍汇总

文件类型 文件名称 更新时间 pdf 浅谈ACEGI配制 .pdf 2015/10/9 pdf AJAX In Action.pdf 2015/10/9 pdf Ajax.pdf 2015/10/9 txt AjaxHttpRequest.txt 2015/10/9 pdf AJAXInAction.pdf 2015/10/9 pdf Ajax经典案例开发大全.pdf 2015/10/9 pdf AJAX开发简略(含续一).pdf 2015/10/9 pdf AJAX开发简略.pdf 2015/

Struts2的属性驱动与模型驱动的区别

一.为什么要使用属性驱动和模型驱动? struts2与struts很大的不同点在于,struts的execute方法提供了HttpServletRequest和 HttpServletResponse方法在获取客户端提交的数据信息的时候需要使用HttpServletRequest.getParameter()方法,并且还需要进行必要的数据类型转换.如何客户端提交的数据量大的时候,我们则需要写很多的getParameter方法.这样代码量就相应的增加不少.但是struts2为我们提供了属性驱动和模

Struts2属性驱动与模型驱动

原文地址:http://blog.csdn.net/wuwenxiang91322/article/details/11660207 为什么要使用属性驱动和模型驱动 struts2与struts很大的不同点在于,struts的execute方法提供了HttpServletRequest和HttpServletResponse方法在获取客户端提交的数据信息的时候需要使用HttpServletRequest的getParameter()方法,并且还需要进行必要的数据类型转换.如何客户端提交的数据量大