我是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>
&#13;
这是我用来加载属性文件中的值的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值来间接打开此页面。 但是当直接打开这个页面时,我会在
行获得NullPointerExceptionString[] num = resource.getString(dbname).split(",");
两个问题:
答案 0 :(得分:1)
您只需要else
声明
if (request.getParameter("SelectText") == null)
dbname = "SELECT";
else
dbname = request.getParameter("SelectText");
要默认选中option
,您应该尝试selected="selected"
。在某处存储值并动态更改所选选项。
<option value="ONE" selected="selected">ONE</option>
答案 1 :(得分:1)
首先,我的建议是不要在JSP页面中混合HTML代码中的Java代码。尝试使用Java Servlet管理您的请求并重新设置,这样您就不会有一个混乱的代码。
我将在下面回答您的问题:
代码应如下所示:
String dbname = "SELECT";
String requestValue = request.getParameter("SelectText");
if (requestValue != null) {
dbname = requestValue;
}