2017-09-12 1 views
0

meine Feder-Controller senden Objekt "Abteilung" und mein Formular bekommen es und muss überprüfen, wie viele Aufträge aus allen Abteilungen von dem Mitarbeiter geprüft wird funktioniert großartig, aber wenn Benutzer Mitarbeiter bearbeiten er muss die Jobs sehen, die bereits überprüft wurden.thymeleaf Attribut-Check enthält durch andere Attribut Wert

, damit es funktioniert Ich muss es wie machen: th: checked = "$ {jobs.contains ($ {job.id})}" aber ich denke, ich kann Attributwert nicht in anderen Attributwert setzen .

<div th:each="job : ${department.jobList}" class="col-md-4"> 
       <fieldset class="form-group"> 
       <label class="custom-control custom-checkbox"> 
        <input name="jobs" th:checked="${jobs.contains(34L)}" th:value="${job.id}" type="checkbox" class="custom-control-input"/> 
        <span th:text="${job.name}" class="custom-control-description"></span> 
        <span class="custom-control-indicator"></span> 
       </label> 
       </fieldset> 
      </div> 

mein Controller:

// Edit employee page 
@RequestMapping("/panel/{workPlaceName}/employees/{id}") 
public String editEmployeesPage(Model model, HttpSession httpSession, HttpServletRequest request,@PathVariable Long id) { 
    // Auto login check 
    WorkPlace workPlace = new WorkPlace(); 
    Employee employee = new Employee(); 
    Object logInTemp = httpSession.getAttribute ("loggedInUser"); 
    if (logInTemp != null){ 
     Object tempLogIn = httpSession.getAttribute ("loggedInUser"); 
     LogIn logIn = (LogIn) tempLogIn; 
     workPlace = workPlaceService.findById(logIn.getUserName()); 
     model.addAttribute("workPlace",workPlace); 
     employee = employeeService.findById(id); 
     if(!model.containsAttribute("employee")) { 
      model.addAttribute("employee", employee); 
     } 
    } else { 
     return "redirect:/"; 
    } 

    // END of Auto login check 
    ArrayList<Long> jobs = new ArrayList<>(); 
    for (int i = 0; i < employee.getJobList().size(); i++) { 
     jobs.add(employee.getJobList().get(i).getId()); 
    } 
    model.addAttribute("jobs", jobs); 

    model.addAttribute("action","/panel/"+workPlace.getName()+"/employees/"+employee.getId()); 
    return "workplace/editEmployee"; 
} 

Antwort

0

ok Die Antwort lautet: th: checked = "$ {jobs.contains (job.id)}"

mein Fehler war: th: geprüft = "$ {jobs.contains ($ {job.id})}"

Verwandte Themen