Java 提交表单后,如何在下拉框中保留选定值?

Java 提交表单后,如何在下拉框中保留选定值?,java,javascript,html,jsp,drop-down-menu,Java,Javascript,Html,Jsp,Drop Down Menu,在我找到的许多解决方案中,我似乎没有一个能为我工作。我的jsp文件中有一个下拉列表: <select name="chosenOne" onchange="javascript:getUsers(this.value);"> <option value="0" onclick="javascript:getUsers(this.value);">All Modules</option> <c:f

在我找到的许多解决方案中,我似乎没有一个能为我工作。我的jsp文件中有一个下拉列表:

    <select name="chosenOne" onchange="javascript:getUsers(this.value);">  
            <option value="0" onclick="javascript:getUsers(this.value);">All Modules</option>
            <c:forEach items="${modules}" var="module"> 
                <option value="${module.id}"><c:out value="${module.title}"/></option>  
            </c:forEach>  
        </select></p> 

那么,如何在表单刷新后使所选下拉列表值保留在下拉框中呢?我已经设置了一个属性“formerSelect”,它只包含以前在下拉列表中选择的项目的值。但由于某种原因,当我试图将下拉列表指定给选项标记中的“selected”值时,它使我的下拉列表无效。非常感谢您的帮助

提交后,需要将此参数传递给httpRequest:

request.setAttribute("selectedModule", request.getParameter("chosenOne"));
之后,您需要将一个选项标记为选中:

<c:forEach items="${modules}" var="module"> 
     <option value="${module.id}" ${module.id == selectedModule ? 'selected':''}>...</option>  
</c:forEach> 

...  

我可以这样解释。作为示例代码 将此代码放入Servlet中

String status = request.getParameter("status");
request.setAttribute("status", status);
将此代码放入jsp文件中

<select  id="status" name="status" class="listBx"  onChange = "check(this);">
    <option value="" >--- Select ---</option>                           
    <option value="1"  <%if((request.getAttribute("status") != null) && request.getAttribute("status").equals("1")){ %> selected <%} %>>Logged in</option>
    <option value="0"  <%if((request.getAttribute("status") != null) && request.getAttribute("status").equals("0")){ %> selected <%} %>>Logged Out</option>
</select>

---选择--
登录
注销

它似乎不起作用。表单刷新后,它仍然返回到“所有模块”。它必须工作。我举了一个简单的例子,您可以在这里下载:您选择一些选项并提交表单,然后在servlet中保存所有这些参数。因此,如果需要再次显示此表单,则需要在其中传递所有填充的参数。其中一个是selectedModule。要恢复“html选择”状态,您需要将“selected”属性添加到“html选项”,其中一个模块ID等于selectedModule。您可以在此处阅读有关使用EL的一些文档:确切地说,您可以在我的示例中看到:这比顶级解决方案好得多
String status = request.getParameter("status");
request.setAttribute("status", status);
<select  id="status" name="status" class="listBx"  onChange = "check(this);">
    <option value="" >--- Select ---</option>                           
    <option value="1"  <%if((request.getAttribute("status") != null) && request.getAttribute("status").equals("1")){ %> selected <%} %>>Logged in</option>
    <option value="0"  <%if((request.getAttribute("status") != null) && request.getAttribute("status").equals("0")){ %> selected <%} %>>Logged Out</option>
</select>