`

struts2 封装请求参数(四种)

 
阅读更多

1  直接在Action中,注入javaBean的属性,然后在action中给属性添加相应的set方法,当然,要求jsp表单input的name属性的名称和action中属性的名称相同,个人感觉这样接收参数十分乱,这样接收参数没有使用面向对象的思维去进行开发,而且action越来越像javaBean。

2  为了解决我上面十分混乱的模式,struts2 还给我们提供了另一种解决方案,就是这次我们在action中声明相应的model,例如private User user; 然后添加这个模型的get方法和set方法,相应的jsp页面在input标签中也要用相应的声明方式进行参数的接收和发送,<input type="text" name="user.username">,例如username属性,在开发中比较推荐这种方式进行开发,因为可以注入多个model对象,一般在开发中,一个action中往往需要注入多个model对象。当注入的model对象比较多的时候,相应的get和set方法十分多,看着混乱。

3  为了解决上面的比较混乱的方法,我们采用另一种开发方式,这个开发方式在企业中比较常见,其实也就是上面第二种的变形,我也是在我的action中注入model,但是这次我是直接new了一个对象,也就是

public EmpModel em = new EmpModel(); 请注意,model对象一定要用public来进行修饰,然后同样的道理,我们也需要在我的jsp进行<input name="em.pwd" size="25" value="${em.pwd}"/> 接收参数以及参数传递,这种开发方式个人非常推荐。

4  下面说一种开发方式,实现modelDriven接口,进行参数的传递。

   1.让action类实现ModelDriven
                2.重写getModel方法
                3.在action中实现化一个model对象,让getModel方法返回这个对象。
               
                public class Login3Action extends ActionSupport implements ModelDriven<User> {

                    private User user = new User();

                    public User getModel() {
                        return user;
                    }
                }

这种开发方式十分不推荐。因为这种开发方式在一个action中只能注入一个model对象,就是因为这种需要接口注入需要添加泛型的原因,一个action只能注入一个模型对象。所以,开发中不推荐使用。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics