码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2017-11-26 18:44:13      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:反射   tsp   put   port   开发   span   一个   ext   efi   

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接收请求参数和类型转换

标签:反射   tsp   put   port   开发   span   一个   ext   efi   

原文地址:http://www.cnblogs.com/lesliehe/p/7899531.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!