Struts2接收参数总结

描述一下在struts2中获取id :action="role_delete?id=%{id}" 这种%{id}获取id值的方式是struts2中独有的获取方式,类似于jstl表达式中的${id}

首先我们来介绍struts2中从界面添加参数,传递至action的情况

         第一种是通过基本的参数传递,在action中定义对应的属性名,比如前台定义的form表单中定义的name 属性称为username那么对用的action中需要提供对应的private username 并提供get set方法来进行参数的传递。(我们都是在进行页面跳转中,通过制定对应的action进行加载,返回对应的页面,而这个过程中,struts2会自动将传递的参数一一对应的通过get set方法赋值)。

                            <a href="user/user!add?name=a&age=8">添加用户</a>

                  对应的action中:

                       private String name;
               private int age;

                       public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}

public void setAge(int age) {
this.age = age;
}

   域模型对象(domainModal)

           所谓的域模型对象其实就是把我们定义好的modal对象利用起来,大家都知道java中操作的是对象,而我们在给定的参数一般也会与对象中的某个属性匹配。因此我们完成可以在action中封装一个private Domain domain 

      给它定义get set方法,而前台页面在赋值的时候 通过 name=domain.username 来进行参数的传递,这样struts2会将我们的参数自动封装成一个对象进行传递,不过在取值时注意使用的是get 方法获取对象值。

        不过这个东西有一个缺点,我们需要传递的参数有时候会比对象本身的属性更多,比如进行密码确认的时候

 这个时候模型对象就略显不足了。

       需要通过dto(数据传输对象)来进行弥补,怎么个弥补法呢?其实就是建立一个伪对象模型,有几个参数要接收,我就让这个伪对象有几个属性,通过struts2自动封装的功能将伪对象的属性值进行填充,再在我们的action中拿出我们真实对象所具有的属性对应的值,赋给真实对象。(其实说白了就是倒到手而已)。


 模型驱动(model driven)

  所谓的模型驱动需要通过我们的action去实现 implements ModelDriven<User>接口,注意在实现接口的时候要把所指代的模型对象传入,因为接口提供了一个getModel的方法,通过这个方法会返回封装之后的model对象,那么问题来了?我们的对象那里来的?怎么就会get到呢?我们的参数又是怎么传入的呢?

         对象的来源是我们自己new出来的,即在action中提供私有的对象模型时需要我们自己手动的进行创建

             private User user = new User();

      有了这个对象以后,这个对象中的get,set方法就会被struts2去调用,给它赋值,然后会通过getModel方法把赋值完毕后的对象给我们返回来,这样就可用了。

   需要指明的一点是:既然我是通过对象中的get set方法赋值和取值的,jsp页面中也就可以直接使用name=“username”是这种方式传递参数即可。

            


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值