我在jsp的表单的一个下拉菜单中显示了一些动态的内容,然后提交。我的目的是在执行ActionForm的validate()出错后返回到原始页面时,还能够在下拉菜单中显示这些动态的内容。可是在我的实现中,出错返回到原始页面后下拉菜单中的动态内容不能显示,不知道怎样解决,请大家帮忙。多谢 !!!!!!

解决方案 »

  1.   

    在你的struts-config.xml文件里,这个action的input属性怎么配的?
    要配成显示这个页面的action的路经才行哦。
      

  2.   

    1是把数据放到session里面去,2是用request.setAttribute和request.getAttribute实现
      

  3.   

    1是把数据放到session里面去,2是用request.setAttribute和request.getAttribute实现把数据放到session里面去是可以
    不过效率不高
    没出错时数据还是在session里,需要判断释放考虑出错时重新执行动态生成下拉菜单的那段代码
      

  4.   

    你可以用一下 struts中的LabelValueBean 来解决
      

  5.   

    我的下拉菜单的内容是从Action中调用DAO的方法从数据库中读出来的。
    我不想改动jsp的内容,但还想显示下拉菜单中的动态内容。
    我的jsp的代码如下:
    <body >
    <span style="color:RED;"><html:errors /></span>
    <html:form action="/updateEvent.do?method=update" method="post" onsubmit="return validateEventForm(this);">
    <table width="35%" border="0" align="left" cellpadding="0" cellspacing="1" class="tableBorder">
       <tr>
       <html:hidden property="userright_areaid" />
       <html:hidden property="id" />
         <td align="left" class="forumRowHighlight">event name:
    <html:text property="name" size="20" />
             </td>
            </tr>

    <tr>
    <td align="left">event cards:<br>
    <html:select property="cardIDs" multiple="true" size="10">
    <html:optionsCollection name="EventForm" property="cardList" label="cardName" value="cardName" />
    <html:option value="-1" style="background-color:red">please select card</html:option>
    <html:optionsCollection name="EventForm" property="newCardList" label="cardName" value="cardName" />
    </html:select>
         </td>
    </tr>
        <tr>
         <td>
    <html:submit value="Submit" onclick="return validateEventForm(this);" />
    <html:reset value="Reset" />
    </td>
    </tr>
    </table>
    </html:form>
    </body>
    大家要帮忙啊!!!!!!
      

  6.   

    不要在FormBean里验证,不好,在Action里验证这问题不就解决了
      

  7.   

    我所有的验证都是在FormBean里面的,这回麻烦了,要重写所有的代码吗?
      

  8.   

    你的struts-config.xml文件怎么配置这个action的?关键是input属性不能直接配置为这个jsp的路径
      

  9.   

    在FormBean里验证是可以的,你没有必要重新写
      

  10.   

    楼上正解,只要input能配到那个JSP页面就可以在ACTION里request设置那个属性了啊
      

  11.   

    1.要想下拉菜单的内容还能显示,要把菜单项存到session域,因为你选择后提交
    已经是另外一个http请求了,原request域的attribute不可用了2.最好用validator框架,与ActionForm的validate函数相比,它增加了客户端校验,
    如果非法,不会发出请求,减轻了服务器的负担
      

  12.   

    我都做一个validate类,来做  不formBean 里写
      

  13.   

    input配到**.do就可以在ACTION里request设置那个属性了
      

  14.   

    我比较倾向于用input配到**.do的方法,可还有一个技术问题:
    我的input的**.do是带个id参数的,
    如果我将input配到**.do,那我这个id参数怎么办?
      

  15.   

    放到session中可以,或者在validate时做一次request.getAttribute()和request.setAttribute()
      

  16.   

    这样子,首先把下拉框中的数据保存在request中,然后配置action的input属性就是你这个出错的页面