Struts2 JSP ACTION 数据传递总结!-->自己总结精辟!

1.JSP页面请求的组件参数--->注入Action中属性方法:

拦截器利用setXxx方法,把请求参数与Action中同名的属性进行关联,只要组件的名字与Action中属性名字(带有Set方法即可),框架就会把参数注入到组件中曲!


2.Action的属性值---->传递到JSP页面方法:

方法1:<S:property value="属性名"》, 则标签整体就会把Action中的属性名对应的值传递到JSP页面。

方法2:EL表达式搞定{applicationScope.Online}--->只能用JSTL c标签进行各种写逻辑,因为{xxx}不能放在java片段中《%%》。

方法3:传统的java片段方式,把在四大范围对象中的值取回(k,v方式),例如:<%List ipuList = session.getAttribute("")%>----->利于利用java方式写逻辑进行显示!


总结:对于方法2和方法3都可以实现展示需求,虚体用哪个看自己习惯吧,但是就代码的规范和MVC的规范,尽量不要在jsp中出现java代码,用方法2感觉更专业一些,但是需要对c标签用的比较熟练,对于一些逻辑用c标签比较费劲,所以一般为了开发速度可能会用方法3.


3.JSP页面参数--->注入到Action中复杂类型属性方法:(不常用,不符合MVC架构,JAVABEAN一般不放在Action中)

多个组件名称分别为Action中多个对象属性的名称(属性名.xx方法名),这样当提交后,会自动把多个组件参数,传入到Action中对象属性中去(javaBean)。与1类似。


4.请求url-->Action-->JSP:  这时候在Action的属性类中设初值,则与3原理一样反方向, 属性类的值会带回到JSP相应名字的插件value。

可省去 value=“#request.usrname”和后台request中setAttribut存usrname的过程。

(此处在LDTM项目中,省去了N行代码,很爽!!)


5.基于模型M的驱动:其实就是将对象的各种属性--->直接注入到模型M中,而不是Action中。

通过调用getModel方法,把要注入的javabean放到ValueStack的顶部,在url请求后,框架将在ValueStack中寻找与提交参数名(组件名)匹配的set方法,正好返回的javabean中有,则参数值注入到此javabean中!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值