使用ModelDriven接口,对请求数据进行封装
Action充当的角色既可以是Model也可以使Controler.
2.Action 本身作为model对象,通过成员setter封装,而且是必须要属性的setter方法,与getter并没有关系(属性驱动方式):
3.创建独立model对象,页面通过ognl表达式封装,必须要User的set和get方法(属性驱动)
4.(1) Action封装数据,会不会有线程问题 ?
Action是多实例的,每次请求都会创建一个Action对象,没有线程安全问题.
Servlet.Struts1,是单例的.有线程问题
相对而言,Struts2性能损坏大一点.
(2). 在使用第一种数据封装方式,数据封装到Action属性中,不可能将
Action对象传递给 业务层
(3). 谁来完成的参数封装
由拦截器完成参数封装:
<interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>
5.3.实现ModelDriven接口,对请求数据进行封装(模型驱动)
下一篇 ecshop产品列表显示型号