struts2获取请求参数-----属性驱动3种
获取请求参数
在Struts2中action是什么?
(struts2是一个mvc框架)
V:JSP
M:action
C:action StrutsPrepareAndExecuteFilter 核心控制器
在struts2中获取请求参数
1.属性驱动
1.直接将action做一个model,就可以得到请求参数
//获取参数 属性驱动 第一种是,直接将action作为model
问题1:action封装请求参数,会不会存在线程安全问题。
不会,每次请求都是一个新的action,所以不会出现
缺点: 这种封装的缺点。需要单独定义javaBean,将action中的属性copy到javaBean中
优点:简单
底层是通过反射获取。
2.直接在action中声明一个model
private User user;
提供get、set方法
在页面上使用ognl进行描述
有点:简单 解决了第一种封装的问题
缺点:在页面上用到了ognl表达式。 页面不通用了。
问题:这种方式,数据是怎样封装的?
是通过struts2中的interceptor进行了封装
2.模型驱动 在开发应用比较多
步骤:
1.让action类实现ModelDriver
private User user=new User();
public User getModel(){
return user;
}
2.重写getModel方法
3.在action中实例化一个model,让getModel返回这个对象
优点:解决了属性驱动存在的问题
缺点:一次只能封装一个model对象