Я работаю над проектом, в котором мне нужно создать форму с выпадающим полем для категории. И в соответствии с выбранной категорией, я должен заполнить второй выпадающий список под названием.
Этого я достигаю через AJAX.
Я также написал метод, который будет вызываться при изменении категории, чтобы отключить раскрывающийся список подкатегории, если выбранная категория ОТКРЫТА как:
if(str=="OPEN"||str=="open"){
document.form.subcaste.disabled=true;
}
Но когда я нажимаю кнопку отправки, я получаю исключение нулевого указателя в строке:
subCaste = request.getParameter("subcaste");
в сервлете. (Эта строка принимает значение подкадра со страницы jsp).
Я также сделал: <option value="none" selected="selected">Select</option>
в раскрывающемся списке субкасты, чтобы выбрать значение по умолчанию. Но я все еще получаю исключение нулевого указателя. Я считаю, что после того, как я отключил раскрывающийся список, это значение не будет доступно сервлету вообще.
Подробный код:
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;
...}
После получения значений в сервлете и передачи их в другой 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);
%>
Я не знаю, как поступить с этим. Пожалуйста, помогите мне.
Заранее спасибо.