我正在创建一个项目,我需要为类别创建一个带有下拉字段的表单。根据所选择的类别,我必须填写第二个下拉菜单,名为subcaste。 这是我通过AJAX实现的。如何避免空指针异常?
我也写了,这将在该类别的变化被称为禁用亚种姓下拉框方法,如果选择的类别是开放的:
if(str=="OPEN"||str=="open"){
document.form.subcaste.disabled=true;
}
但是,当我点击提交按钮,我得到该行中的空指针异常:
subCaste = request.getParameter("subcaste");
在servlet中。 (该行从jsp页面获取子类的值)。
我也做了:<option value="none" selected="selected">Select</option>
在subcaste的下拉,以便选择一个默认值。但我仍然得到一个空指针异常。我相信,在我禁用下拉框后,该值根本不可用于servlet。
的详细的代码是:
JSP:
<td id='category'><select name='category' onchange="showSubCaste(this.value);">
<option value="none" selected="selected">Select</option>
<% for (i = 0; i < categorySize; i++) {%>
<% category = (String) categoryArr.get(i);%>
<option value=<%= category%>><%= category%></option>
<% }%>
</select>
</td>
<td >SubCaste</td>
<td id='subcaste'> <select name='subcaste'>
<option value="none">Select</option>
</select>
</td>
JavaScript的:
function showSubCaste(str){
...
if(str=="OPEN"||str=="open"){
document.form.subcaste.disabled=true;
document.form.issuingAuthority.disabled=true;
}
else{
document.form.subcaste.disabled=false;
document.form.issuingAuthority.disabled=false;
var url="SubCasteController";
url +="?caste=" +str;
...}
在servlet检索值并将它传递给另一个JSP后:
<%String buffer = "<select name='subcaste' onchange='subCasteChanged(this.value);'><option value='none' selected='selected'>Select SubCaste</option>";
for (int i = 0; i < sizeInfo; i++) {
subCaste = (String) retrievedInfo.get(i);
buffer = buffer + "<option value='" + subCaste + "'>" + subCaste + "</option>";
}
buffer = buffer + "</select>";
response.getWriter().println(buffer);
%>
我不知道如何继续。请帮帮我。
预先感谢您。
你必须向我们展示了HTML表单和servlet代码的周围部分的代码更值得我们有什么想法。 – jfriend00