gpt4 book ai didi

javascript - JSP 为 request.getParameter() 提供 NullPointerException

转载 作者:行者123 更新时间:2023-12-02 03:30:27 25 4
gpt4 key购买 nike

我是 jsp 新手,正在创建一个网页,其中包含一个带有选择框和其他一些输入框的表单。我使用属性文件中的值自动填充这些输入框:

NumConfig.properties

SELECT= , , 
ONE=1,I,FIRST
TWO=2,II,SECOND
THREE=3,III,THIRD

这是我的表格:

<html>

<body>
<form name="NumDetail" id="NumDetail" method="post">
<div>
<table>
<tr>
<th rowspan="2">Select
<select id="SelectText" name="SelectText" onchange="this.form.submit()">
<option value="ONE">ONE</option>
<option value="TWO">TWO</option>
<option value="THREE">THREE</option>
</select>
</th>
<th align="center">Number</th>
<th align="center">Roman</th>
<th align="center">Position</th>
</tr>
<tr>
<td align="center">
<input type="text" size=10 id="number">
</td>
<td align="center">
<input type="text" id="roman">
</td>
<td align="center">
<input type="text" id="position">
</td>
</tr>
</table>
</div>
</form>
</body>

</html>

这是我用来从属性文件加载值的 JS 代码:

< script type = "text/javascript" >
<%
ResourceBundle resource = ResourceBundle.getBundle("NumConfig");
String dbname;
if (request.getParameter("SelectText") == null)
dbname = "SELECT";
dbname = request.getParameter("SelectText");
String[] num = resource.getString(dbname).split(","); %>
var number = "<%= num[0]%>";
var rom = "<%= num[1]%>";
var pos = "<%= num[2]%>";

document.getElementById("number").value = number;
document.getElementById("roman").value = rom;
document.getElementById("position").value = pos; < /script>

我可以通过在 URL 中附加 ?SelectText 值来间接打开此页面。但是当直接打开此页面时,我在该行收到 NullPointerException

String[] num = resource.getString(dbname).split(",");

两个问题:

  1. 如何执行 null 检查或为请求参数指定默认值,以便页面不会出错?
  2. 一旦我从下拉列表中选择一个值并提交表单,选择框就不会保留其值并返回到默认值。如何解决这个问题?

最佳答案

您只需要一个 else 语句

if (request.getParameter("SelectText") == null)
dbname = "SELECT";
else
dbname = request.getParameter("SelectText");
<小时/>

要默认选择选项,您应该尝试此selected="selected"。将值存储在某处并动态更改您选择的选项。

<option value="ONE" selected="selected">ONE</option>

关于javascript - JSP 为 request.getParameter() 提供 NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38170116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com