<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>ai2ming</title>
    <description></description>
    <link>http://ai2ming.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>在Struts中使用LazyValidatorForm处理List属性的问题</title>
        <author>ai2ming</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://ai2ming.javaeye.com">ai2ming</a>&nbsp;
          链接：<a href="http://ai2ming.javaeye.com/blog/180452" style="color:red;">http://ai2ming.javaeye.com/blog/180452</a>&nbsp;
          发表时间: 2008年04月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          LazyValidatorForm中存在List属性的时候，目前在Struts 1.2.9的配置文件中无法配置List元素的类型，这样带来了两个问题:<br />1. Struts组装FormBean后，List里面的元素是DynaBean，使用BeanUtils.copyProperties从form复制到业务对象的时候，因为业务对象使用了List&lt;T>这样的list元素，copyProperties就出错了。<br />2. 如果List的元素还嵌套有其他对象，如OrderItem里面还有一个Product的属性，在页面上使用的input元素，名字为product.id, 可以正常显示，但是表单提交的时候，Struts调用BeanUtils.populate 方法会报错，提示No bean specified。<br /><br />第一个问题，可以覆盖List元素的set方法解决，遍历提交上来的List&lt;DynaBean>对象，使用BeanUtils.copyProperties将dynaBean复制到对应的业务对象上面，虽然麻烦一点，也可以使用。<br /><br />第二个问题中，如果对象不在List中，可以在LazyValidatorForm定义的时候声明一下对象的属性，但是List里面我就不知道如何处理了。<br /><br />对于这两个问题，我查了一些资料，始终没有得到比较好的解决方法。最常用的方法是将List属性换成Array属性，这样就可以在LazyValidatorForm定义的时候声明Array元素的类型。<br />大家说说看，是否有更好的解决方法？
          <br/>
          <span style="color:red;">
            <a href="http://ai2ming.javaeye.com/blog/180452#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 08 Apr 2008 14:13:02 +0800</pubDate>
        <link>http://ai2ming.javaeye.com/blog/180452</link>
        <guid>http://ai2ming.javaeye.com/blog/180452</guid>
      </item>
  </channel>
</rss>