Я хочу заполнить 3 выбора (Зона, Станция, Отдел) в стойках2.
В каждом раскрывающемся списке отображаются различные параметры в зависимости от значений, выбранных в предыдущем раскрывающемся списке:
- Первое поле - Зона.Пользователь выберет одну зону из выбора зоны.
- На основе этой выбранной зоны выбор станции будет заполнен из базы данных.Пользователь может выбрать несколько станций здесь.
- На основе этих выбранных станций теги выбора отделов будут заполняться из базы данных.Пользователи могут выбрать несколько отделов здесь.
Я могу заполнить выбор зоны (раскрывающийся список) при загрузке страницы и отобразить его на странице jsp.Однако выбор станции не отображается на моей странице, хотя атрибут stationList
заполняется из базы данных.
Установка его вручную также не помогает.
Код JSP здесь:
<tr>
<td style="background-color:#FFFFFF;" class="headingLabelStyle1" align="right">
<s:label value="Zone" ></s:label></td>
<td width="4%" align="center" class="headingLabelStyle1" style="background-color:#FFFFFF;">
<s:label value=":" /> </td>
<td style="background-color:#FFFFFF;">
<s:select name="pmrkpr8800Bean.zone" list="zoneList" id="zone"
headerValue="-- Please Select --" headerKey="-1"
tabindex="1" cssClass="h1"></s:select>
</td>
</tr>
<tr>
<td style="background-color:#FFFFFF;" class="headingLabelStyle1" align="right">
<s:label name="stncd" value="Station Code" ></s:label></td>
<td width="4%" align="center" class="headingLabelStyle1" style="background-color:#FFFFFF;">
<s:label value=":" /> </td>
<td style="background-color:#FFFFFF;">
<s:select name="pmrkpr8800Bean.stnCde" list="stationList" id="stnCde" headerValue="-- Please Select --" headerKey="-2" tabindex="2" cssClass="h1" size="3" multiple="true"></s:select>
</td>
</tr>
<tr>
<td style="background-color:#FFFFFF;" class="headingLabelStyle1" align="right">
<s:label value="Department" ></s:label></td>
<td width="4%" align="center" class="headingLabelStyle1" style="background-color:#FFFFFF;">
<s:label value=":" /> </td>
<td style="background-color:#FFFFFF;">
<s:select name="pmrkpr8800Bean.dept" list="deptList" id="dept" headerValue="-- Please Select --" headerKey="-1" tabindex="3" cssClass="h1" size="3" multiple="true"></s:select>
</td>
</tr>
public String populateZoneSelect() {
String result = SUCCESS;
try {
log.info("Inside populateZoneSelect");
zoneList = ipmrkpr8800.getZoneList();
} catch (Exception e) {
result = ERROR;
e.printStackTrace();
}
return result;
}
public String populateStationSelect() {
String result = SUCCESS;
String selZone = request.getParameter("selZone");
System.out.println("Selected zone: " + selZone);
try {
stationList.put("CSMT", "CSMT-MUMBAI");
stationList.put("NDL", "NDL-NEW DELHI");
stationList.put("PNVL", "PNVL-PANVEL");
} catch (IOException e) {
e.printStackTrace();
}
/*try {
log.info("Inside populateStationSelect");
stationList = ipmrkpr8800.getStationList(selZone);
System.out.println("StationList: " + stationList.size());
} catch (Exception e) {
result = ERROR;
e.printStackTrace();
}*/
return result;
}
Последние два блока кода относятся к классу Action.populateZoneList работает нормально, и я могу отображать различные зоны из базы данных.Выбранное значение захватывается и отправляется в populateStationSelect ().если закомментированная часть в функции не закомментирована, переменная stationList Map содержит список кодов и названий станций.
Но после этого в jsp, в Station select tag отображается только заголовок «Пожалуйста, выберите».Коды станций и названия, полученные из базы данных, не отображаются.Я написал геттеры и сеттеры для этих переменных карты также в действии.