struts2 封装请求参数(四种)

本文介绍了Struts2中四种不同的参数接收方法:直接注入属性、通过model接收、使用new对象方式以及实现ModelDriven接口。对比了它们的优缺点,并推荐了在实际项目中较为常用且灵活的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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只能注入一个模型对象。所以,开发中不推荐使用。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值