Witam posiadam problem z dynamicznym wyswietleniem wartosci w drugim selekcie w html . Posiadam klase z działami której wartosci wyswietlam w pierwszym selekcie.
Controller
@GET
@Secured(value = { "ROLE_ADMIN" })
@RequestMapping(value = "/addEmployee")
public String EmployeeForm(Employee employee, Model model,
@RequestParam(name="success", required=false)String success) {
Map<Integer, String> departmentMap = prepareDepartmentMap();
model.addAttribute("departmentMap", departmentMap);
model.addAttribute("employee", employee);
if(success != null) {
if(success.equals("addEmployee")) {
model.addAttribute("message", "Pracownik dodany !");
}
}
return "addEmployee";
}
Metoda do zwrocenia Mapy działow
public Map<Integer, String> prepareDepartmentMap() {
Map<Integer, String> departmentMap = new HashMap<Integer, String>();
List<Department> departmentList = departmentService.findAllDepartments();
for( Department department : departmentList){
departmentMap.put(department.getId(),department.getName());
}
return departmentMap;
}
JSP
<div class="form-group">
<label>Wybierz Dział</label>
<form:select id="inputState" class="form-control" path="department">
<form:option value="${department.id}"> --SELECT--</form:option>
<form:options items="${departmentMap}"></form:options>
</form:select>
</div>
Controller metoda zwracajaca stanowiska w danym dziale
@GET
@Secured(value = { "ROLE_ADMIN" })
@RequestMapping(value = "/getPositiontMapByDepartmentId")
public @ResponseBody Map<Integer, String> getPositiontMapByDepartmentId(Employee employee, Model model,
@RequestParam(name="department") int departmentId) {
Map<Integer, String> positiontMapByDepartmentId = preparePositionMapByDepartmentId(departmentId);
model.addAttribute("positiontMapByDepartmentId", positiontMapByDepartmentId);
return positiontMapByDepartmentId;
}
Metoda zwracajaca mape
public Map<Integer, String> preparePositionMapByDepartmentId(int departmentId) {
Map<Integer, String> positiontMapByDepartmentId = new HashMap<Integer, String>();
List<Position> positionListById = positionService.findAllPositionsByDepartmentId(departmentId);
for( Position position : positionListById){
positiontMapByDepartmentId.put(position.getId(),position.getName());
}
return positiontMapByDepartmentId;
}
JSP dwóch selectów
<div class="form-group">
<label>Wybierz Dział</label>
<form:select id="inputState" class="form-control" path="department">
<form:option value="${department.id}"> --SELECT--</form:option>
<form:options items="${departmentMap}"></form:options>
</form:select>
</div>
<div class="form-group">
<label>Wybierz stanowisko</label>
<form:select id="inputState" class="form-control" path="position" items="${positiontMapByDepartmentId}" />
</div>
I teraz potrzebuje waszej pomocy jakim sposobem najlepiej to zrobic by nie przeladowywac calej strony tylko poprzez wybor działu w pierwszym selekcie użyc metody controllera zwracacającego Mape stanowisk w danym dziale z góry dzieki.