java - 如何在页面加载时第一次在JSP上显示下拉列表的第一个值?

标签 java javascript html jsp drop-down-menu

我正在处理 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/

相关文章:

html - 将 Div 设为新行

html - 封装CSS

javascript - 我的 X 轴没有呈现我想要的所有刻度 - D3 JS

javascript - 在javascript中创建动态链接?

java - 如何将两个链表相乘成第三个链表?

java - 使用 JAVA 的 Kafka 消费者

javascript - 是否有一个 javascript 库可用于合并 2 个或更多 zip 文件而不解压它们

html - CSS left, position 和 floating ...在多个浏览器中的不同结果

java - Rest API SSL 带有 ca 签名的证书

java - 一个用于实用功能的无状态 session EJB?