why ,no one help me ???

解决方案 »

  1.   

    他支持套用,意思可以有个属性是DTO,
      

  2.   

    比如我有一个User类和一个UserInfo类,前者记录用户的帐号密码,后者记录用户的详细信息。前者也有一个UserInfo属性,这样它们两者是嵌套了。
    现在我要把这个用户的帐号和详细信息都显示到界面上。
    一种方式是在actionForm中用两个属性User user和UserInfo userInfo来存储,在jsp中就可以用如下方式显示出来:
    <nested:nest property="user">
        帐号:<nested:write property="account"/>
    </nested:nest>
    <nested:nest property="userInfo">
        姓名:<nested:write property="name"/>
        性别:<nested:write property="sex"/>
    </nested:nest>
    由于user和userInfo本身就是嵌套的,所以第二种方式就在actionForm中使用一个User user属性即可:
    <nested:nest property="user">
        帐号:<nested:write property="account"/>
        <nested:nest property="userInfo">
            姓名:<nested:write property="name"/>
            性别:<nested:write property="sex"/>
        </nested:nest>
    </nested:nest>这样处理是不是很方便了,actionForm可以直接放上数据存储对象,如果使用了hibernate做数据持久层,我们就可以直接把持久画对象放入actionForm来显示到界面上,不用在actionForm里写很多属性来分别存储数据,也免去了给这些属性分别赋值的过程。如果我们把上边例子中的<nested:write/>标记换成<nested:text/>,这就类似于<html:text/>标记,是一个输入框,这样我们就可以把街面上输入一次提交到actionForm中的这个数据存储对象,比如user。我们在action中就可以直接获得这个user进行处理,非常方便。
      

  3.   

    谢谢。我看你上面写的两种方法也没多大区别呀,不过我理解了nested的意思拉。下面两个new question:
    -----------------
    这样处理是不是很方便了,actionForm可以直接放上数据存储对象,如果使用了hibernate做数据持久层,我们就可以直接把持久画对象放入actionForm来显示到界面上,不用在actionForm里写很多属性来分别存储数据,也免去了给这些属性分别赋值的过程。请问用CMP作为持久层可以吗?把dto放进来?:)
    2。
    如果我们把上边例子中的<nested:write/>标记换成<nested:text/>,这就类似于<html:text/>标记,是一个输入框,这样我们就可以把街面上输入一次提交到actionForm中的这个数据存储对象,比如user。我们在action中就可以直接获得这个user进行处理,非常方便。
    ------
    struts本来就是这么干的,我不知道你上面写是什么意思
      

  4.   

    第一个问题,因为我没有做过cmp的开发,所以不太清楚cmp的实现。不过只要是标准的javabean,即用到的属性都有各自的set和get方法便可放入actionForm。
    第二个问题,如果你用第一个问题所说的方式来替代了原来在actionForm中写很多属性的做法,则可以用<nested:text/>标记替换原来使用的<html:text/>标记来实现输入框的作用。
    同理,nested拥有了实现logic、html、bean三种类型标记实现的大部分功能,如
    nested:iterate对应logic:iterate
    nested:logic对应logic:iterate
    nested:write对应bean:write
    nested:radio对应html:radio
    等等