struts2 action接收请求参数和类型转换

Posted 大热

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了struts2 action接收请求参数和类型转换相关的知识,希望对你有一定的参考价值。

1,action接收请求参数

  • 在struts2中action是什么?(struts2是一个mvc框架)

          V:jsp
          M:action
          C:action  StrutsPrepareAndExecuteFilter

  • 在struts2中获取请求参数:

        a.属性驱动
            1.直接将action做一个model,就可以得到请求参数.
                问题1:action封装请求参数,会不会存在线程安全问题?
                    不会:因为每一次请求,都是一个新的action。
                缺点:需要单独定义javaBean,将action中属性copy到javaBean中。    
                优点:简单。                
                这种方式 ,底层是通过反射来实现的。
                
            2.在action中声明一个model。
                private User user;提供get/set方法
                
                在页面上使用ognl来描述
                <input type="text" name="user.username">
                
                优点:简单,解决了第一种封装的问题
                缺点:在页面上使用了ognl表达式,页面不通用了。
                
                问题:这种方式,数据是怎样封装的?
                    是通过struts2中的interceptor进行了数据封装.

1 <interceptor name="params" class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>

        b.模型驱动(在开发中应用比较多)
            步骤:
                1.让action类实现ModelDriven
                2.重写getModel方法
                3.在action中实现化一个model对象,让getModel方法返回这个对象。

1 public class Login3Action extends ActionSupport implements ModelDriven<User> {
2 
3     private User user = new User();
4 
5     public User getModel() {
6         return user;
7     }
8

            优点:解决了属性驱动存在的问题
            缺点:一次只能封装一个model对象.
            
             struts2 有很多围绕模型驱动的特性
            * <interceptor name="modelDriven" class="com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor"/> 为模型驱动提供了更多特性


 
































以上是关于struts2 action接收请求参数和类型转换的主要内容,如果未能解决你的问题,请参考以下文章

Struts2 (下)

Struts2框架怎样在Ajax请求中接收数组或List集合参数

Struts2-整理笔记Action生命周期如何获取参数(3种)集合类型参数封装

struts2.0的工作原理?

struts2怎样获取AJAX post请求传递的数据

struts2自定义转换器