我正在处理 JSP 页面,我需要始终在该 JSP 页面上显示下拉列表的选定值。下面是我的例子 -
<p style="font-weight: bold">Limit</p>
<select id="limit" name="limit">
<option value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
第一次加载页面时,我想显示从上面的下拉列表中选择的 10 个值。现在,如果我从上面的下拉列表中选择 20 并提交表单,我需要通过始终维护下拉列表的状态来在该下拉列表上显示 20,因此我使用了下面的代码 -
<%
String limit = request.getParameter("limit");
%>
<script>
document.getElementById("limit").value = '<% out.print(limit); %>';
</script>
但不知何故,每当我第一次加载页面时,我总是会在 Limit
下拉框前面看到空白字段,然后如果我从该下拉列表中选择 20
列出并再次提交表单,然后我可以在该下拉列表中看到 20 selected
,如果我选择 50,然后再次提交表单,那么我也可以在该下拉列表中看到 50 选择。
唯一的问题是,当我第一次加载页面时,它总是在下拉列表中显示空白字段作为选定值,这不是我想要的,我想每当页面打开时第一次自动选择 10第一次加载。
最佳答案
您的代码中没有“默认”分配,因此您的值分配是将 limit
的值分配给下拉列表,该值在页面第一次加载时可能为 null。听起来这会导致一个空白选项。
你有两个选择。第一个:如果现有值之一应为默认值,则将其分配给 limit
(如果没有值):
<%
String limit = request.getParameter("limit");
limit = (limit == null) ? DEFAULT_VALUE : limit;
%>
或者,如果现有值之一不适合默认值,您应该在选项列表中提供一个空替代值:
<select id="limit" name="limit">
<option value="">-- SELECT ONE --</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
希望这有帮助。
请注意:通过将 limit
的值插入到您的页面中,您违反了网络安全的主要规则:切勿在未清除页面污染的情况下将用户输入回显到页面上。考虑一下如果包含 script
标记作为 limit
...
关于java - 如何在页面加载时第一次在JSP上显示下拉列表的第一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20573352/