struts2转换器以及获得servlet对象

1.sruts2用什么来代替struts1中的formBean呢?其实在我们调用action中的excute方法之前,struts2的拦截器,已经帮我们调用action中属性的setter方法,给属性都设值了,所以在excute方法中,我们可以直接调用属性值.而我们在jsp中的ul表达式显示属性,那就得归功于action中属性的getter方法了.

关于复合类型的getter和setter方法,我们并不需要关注,因为struts2帮我们都弄好了,比如,按顺序下面3步:
1)我们的提交页面: <input type="text" name="product.id"/>
2)那么我们的action中属性只有product的get和set方法.
3)还有我们的转向页面: ${product.id}
看懂了吧!呵呵,当然你得先有Product这个实体存在.因为这里用了反射,先生称Product对象,然后给product类里的属性设值.

2.顺便说下struts2的2.1.6版本的bug问题,建议大家使用2.1.6以上的版本.

3.类型转换器---转换器有2个作用,一是,参数提交时,把提交上来的参数转化成我们需要的类型,然后我们在excute方法中直接使用; 二是,我们在view层用el表达式显示的属性的时候,用来回显,可以把我们使用的类型转化成字符串型.见下图,我们自定义的转换日期的转换器:
[img]http://dl.iteye.com/upload/attachment/273122/4232f65c-465e-360f-914c-9506f33243a3.jpg[/img]

定义我们的转换器为局部转换器:
[img]http://dl.iteye.com/upload/attachment/273124/8564132f-7b4c-3416-aaee-f91f204e5f82.jpg[/img]
我们的局部转换器的properties文件里内容是什么呢,如下:
"action中的属性名=自定义转换器的路径",见下图示例:
[img]http://dl.iteye.com/upload/attachment/273126/52a50e26-1b06-33fb-8a34-b550a604aae3.jpg[/img]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
定义我们的转换器为全局转换器,做如下的事:
1)在根目录下建立xwork-conversion.xml
2)xwork-conversion.xml内容就不是要对什么属性应用哪个转换器了,变成我们要对什么类型用用哪个转换器了.示例:
[img]http://dl.iteye.com/upload/attachment/273128/6574b35a-b5f5-382b-b5ad-0aa45aad4009.jpg[/img]
而后只要是action中的属性有需要转换类型的,对应上全局转换器就会被自动转换

当然局部转换与全局转换器,有局部优先原则.这点我就不解释了!


4.[b]重要!访问或添加application/request/session属性[/b],如下图:
[img]http://dl.iteye.com/upload/attachment/273164/978fdc0c-3704-31de-9c09-85007b2c972c.jpg[/img]

有了上图,我想大家都明白了struts2如何访问我们的scope的!

当然如果大家想要直接获得request,response对象的话,可以这样做,同样见图片:
[img]http://dl.iteye.com/upload/attachment/273172/bfde4132-821c-326a-b327-d5f2e3940bb6.jpg[/img]
,也许这样直接获得request等属性,有些人更喜欢!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值