快速业务通道

Struts2中的参数传递 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
xie 写道

集合支持不向下兼容。XWorkList已经是@deprecated,用它就错,还不如直接删除掉。在webwork2.2中,它需要为集合另外配置一个conversion.properties文件。真不明白,这样有什么优点?

这种新的整合方式,实际上只是解决了针对容器赋值,不需要依赖XWork的辅助类这样的一个问题,不过其付出的代价,却是多了一个配置文件,这也让人非常郁闷。好好的类型转化,平白无故多出了一个同package下的配置文件,这也无形中增加了编程的复杂度。

3. 现在,拥抱了泛型和Annotation的年代

实际上,在XWork发展到XWork-2.0.X之后,也开始注重了对泛型和Annotation的支持。所以,容器类型的转化,我们也可以尝试一下使用JDK的新特性来进行,当然这也是目前最为推荐的做法。

下面分别给出使用泛型和Annotation的代码示例:

Html代码

<form method="post" action="/struts-example/ognl-collection-conversion.action">    <input type="text" name="users[0].name" value="aaa" />    <input type="text" name="users[1].name" value="bbb" />    <input type="text" name="users2[0].name" value="ccc" />    <input type="text" name="users2[1].name" value="ddd" />    <input type="text" name="userMap[''user1''].name" value="eee" />    <input type="text" name="userMap[''user2''].name" value="fff" />    <input type="text" name="userMap2[''user3''].name" value="ggg" />    <input type="text" name="userMap2[''user4''].name" value="hhh" />    <input type="submit" value="submit" /> </form>

Struts2中的参数传递(5)

时间:2011-02-04

Java代码

public class OgnlConversionAction extends ActionSupport {    private static final long serialVersionUID = 4396125455881691845L;    private static final Log logger = LogFactory.getLog(Policy.class);    private List<User> users;    @Element(value = User.class)    private List users2;    private Map<String, User> userMap;    @Element(value = User.class)    private Map userMap2;    /* (non-Javadoc)    * @see com.opensymphony.xwork2.ActionSupport#execute()    */    @Override    public String execute() throws Exception {      // -> aaa      logger.info("users[0].name : " + users.get(0).getName());      // -> bbb      logger.info("users[1].name : " + users.get(1).getName());      // -> ccc      logger.info("users2[0].name : " + ((User)users2.get(0)).getName());      // -> ddd      logger.info("users2[1].name : " + ((User)users2.get(1)).getName());      // -> [user1, user2]      logger.info("userMap.key : " + userMap.keySet());      // -> eee      logger.info("userMap.key = " + "user1" + " : " + "userMap.value(user1''s name) = " + userMap.get("us

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号