Ich bin neu bei Jsp und erstellen eine Webseite, die ein Formular mit einem Auswahlfeld und ein paar andere Eingabefelder hat. ich bevölkern diese Eingabefelder automatisch mit den Werten aus Eigenschaftsdatei:JSP geben NullPointerException für request.getParameter()
NumConfig.properties
SELECT= , ,
ONE=1,I,FIRST
TWO=2,II,SECOND
THREE=3,III,THIRD
Hier ist meine Form:
<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>
Und das ist Der JS-Code, den ich verwende, um Werte aus der Eigenschaftendatei zu laden:
< 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>
Ich kann indirekt diese Seite öffnen durch Anfügen? Select Wert in der URL. Aber wenn diese Seite direkt zu öffnen erhalte ich Nullpointer an der Linie
String[] num = resource.getString(dbname).split(",");
Zwei Fragen:
- Wie kann ich eine Null-Prüfung durchführen oder die Anforderung Parameter einen Standardwert geben, so dass Seite nicht Fehler tut aus?
- Sobald ich einen Wert aus der Dropdown-Liste ausgewählt habe und das Formular übergibt, behält das Auswahlfeld seinen Wert nicht bei und kehrt zum Standard zurück. Wie löst man das?
Scriptlets sind böse. –