我在jsp文件中有一个下拉列表
<select name="PID" id="PID" style="min-width: 100px;" >
<%
for(somelist pm : List) { %>
<option value="<%=pm.getsmthing()%>" selected><%=pm.getName()%></option>
<option value="-1">Select a Property</option>
这是一个表格。我希望在提交表单后记住所选的项目名称。
答案 0 :(得分:1)
只要关联的请求参数具有完全相同的值,就可以有条件地打印selected
。
<option value="<%=pm.getsmthing()%> <%=(pm.getsmthing().equals(request.getParameter("PID")) ? "selected" : "")%>><%=pm.getName()%></option>
不将其存储在会话中。它会影响同一会话中所有浏览器标签/窗口中的所有页面,这可能会导致“wtf?”最终用户的经历。
无关具体问题,这是编写JSP的oldschool方式。了解JSTL和EL。您的代码将如下所示:
<select name="PID" id="PID" style="min-width: 100px;">
<c:forEach items="${List}" var="pm">
<option value="${pm.smthing}" ${pm.smthing == param.PID ? 'selected' : ''}>${pm.name}</option>
<option value="-1">Select a Property</option>
</c:forEach>
</select>
答案 1 :(得分:0)
将您选择的值添加到HTTP会话中,并在需要显示表单时随时将其重新启动。