保留下拉列表的值

时间:2013-10-26 14:31:42

标签: javascript jsp javascript-events struts

以下是我的jsp,

我有一个填充了tag的下拉列表。我的值是从java bean填充的。下拉值是动态填充的。我使用的框架是struts 1.3。

MyJSP.jsp

<% 
String testIdValue = request.getAttribute("testIdValue");
%>
<body>
    <html:select  property="testId" id="format">
    <option value="0">Select a TestId</option>
    <option value="<%=Mybean.getname()+"^"+Mybean.getdata()%>"<%=(Mybean.getname()+"^"+Mybean.getdata())?"selected=true":""%>><%=Mybean.getname()></option>
    </option>
    </html:select>
    <input type="button" value="submit"/>

</body>

的struts-config.xml

<action path="/test"
type="com.test.TestAction"
name="testForm" scope="request" validate="true"
input="/MyJSP.jsp">
<forward name="success" path="/MyJSPResult.jsp"/>
<forward name="failure" path="/MyJSP.jsp"/>
</action>

TestAction.java

public ActionForward execute(ActionMapping mapping, ActionForm form,....)
{
        TestForm testform = (TestForm) from;
        String testIdValue= request.getParameter("testId");
        request.setAttribute("testIdValue",testIdValue);
}

MyJSPResult.jsp

 <% 
    String testIdValue = request.getAttribute("testIdValue");
  %>

这里每当我点击提交时,点击下拉框值保留的第一个选项的任何验证,即“选择一个TestId”。提交动作后,我可以在TestAction中获取表单值。之后我在请求对象中设置值。我无法检索MyJSP.jsp或MyJSPResult.jsp这些值。

在这种情况下,有人可以告诉我如何保留我的下拉值或一般表格值吗?

我想要的是:在

之后反映的所选下拉值
submiting jsp->action->results page->coming back to jsp or
submiting jsp->action->hitting valiadtion->coming back to jsp.

提前致谢。

1 个答案:

答案 0 :(得分:0)

为什么不使用struts逻辑标签?您在jsp中使用bean和scriptlet来填充select标记。我的建议是将testIdValue设置为操作表单(setter属性)或会话属性(最好采用操作表单)而不是请求。使用逻辑迭代来填充您的选择标记和逻辑当前标记,以检查您的值是否存在于该列表中。如果是这样,请使用selected="selected"这样的html内容。代码片段如下,

<html:select property="testId" id="format" name="your_action_form">
<option value="0">Select a TestId</option>
<logic:iterate property="your_list_property" name="your_action_form">
    <logic:present name="testIdValue" property="testId">
        <option value="your_value" selected="selected">your_text</option>
    </logic:present>
    <logic:notPresent name="testIdValue" property="testId">
        <option value="your_value">your_text</option>
    </logic:notPresent>
</logic:iterate>
</html:select>

此外,您可以使用逻辑equal/notEqual代码而不是present/notPresent代码。如果这有帮助,请告诉我。