<html:form action="/user.do?method=save" method="post" focus="id">
<html:hidden property="user.userid" />
    <table width="99.5%" border="0" cellspacing="0" cellpadding="0" class="leftmnutables">
        <tr>
         <td colspan="2" class="leftlinksheading" align="center">编辑用户<br/></td>
        </tr>
     <tr>
     <td width="20%" align="center">User_Name :</td>
<td width="60" align="center"><html:text property="user.username"/><html:errors property="user.username"/></td>
</tr>
                            <tr>
  <td align="center">Room_ID :</td>
    <td width="60" align="center"><html:text property="user.room.roomid"/><html:errors property="user.roomid"/></td>
    </tr>
    <tr>
     <td></td>
     <td><html:submit value="Submit"/></td>
    </tr>
</table>
</html:form>

解决方案 »

  1.   

    但是当我修改了比如用户姓名的时候,再提交,就报错,说user.room.roomid属性不是userform中user的属性.我就比较郁闷了.不知道该怎么解决.我本来以为用spring的这种方法写formbean会比较简单,不需要添那么多属性,结果就遇到这种问题,最后只好在formbean中又添了一个roomid的参数,从页面传回后台,根据这个id查找到一个room的实例,把它user.setRoom(room).这样才能保存user成功.我想问问大家,有没有更好的解决方法啊.
    最后再问一下,用spring的这种方法不用生成formbean的java文件,那我要怎么在那做表单校验啊?
      

  2.   

    当然啦,你用的是多对一,一个user对应一个room,当然需要在user里设置room属性才能保存。修改保存的时候,你应该先拿user去查询出User实例,然后再修改这个实例的数据,再save,就不会错了。