Advertisement
Guest User

<select> problem solved

a guest
Dec 14th, 2013
184
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  <form class="form-horizontal" action="#" th:action="@{add}" th:object="${employeeForm}" method="post">
  2.     <!--jako object do formy nie przesyłamy naszej klasy z domeny która ma pole Task task tylko tworzymy nową klasę EmployeeForm, której kod niżej dam-->
  3. <div class="form-group">
  4.                 <label for="task">Task:</label>
  5.                 <select th:field="*{taskId}" id="task">
  6.                     <option th:each="task : ${taskList}"
  7.                             th:value="${task.id}"   <!-- Nie przesyłamy obiektu bo nam thymeleaf konwertuje go na string i wtedy dupa. Dlatego przesyłamy id -->
  8.                             th:text="${task.nameOfTask}">Empty</option>
  9.                 </select>
  10.  
  11.             </div>
  12.  
  13. public class EmployeeCreateForm {
  14.  
  15.     private String firstname;
  16.  
  17.     private String lastname;
  18.  
  19.     private String email;
  20.  
  21.     private String phone;
  22.  
  23.     private Integer taskId; //pole do którego wrzucamy to id
  24.    
  25.     //gety i sety
  26. }
  27. //A tak wygląda controller
  28. @RequestMapping(value = "/add", method = RequestMethod.POST)
  29.     public String addEmployee(@ModelAttribute("employeeForm") EmployeeCreateForm employeeForm,  BindingResult result) {
  30.         Employee employee = new Employee();
  31.  
  32.         employee.setFirstname(employeeForm.getFirstname());
  33.         employee.setLastname(employeeForm.getLastname());   //z naszej pośredniej klasy robimi init
  34.         employee.setEmail(employeeForm.getEmail());
  35.         employee.setTelephone(employeeForm.getPhone());
  36.  
  37.         Integer taskId = employeeForm.getTaskId();
  38.         Task task = taskService.getById(taskId);    //pobieramy z bazy task..
  39.  
  40.         employee.setTask(task);     //..i sobie wrzucamy
  41.         task.setEmployee(employee); //warto pamiętać o tym żeby w obie strony
  42.  
  43.         employeeService.save(employee);
  44.  
  45.         return "redirect:/";
  46.     }
  47. //Dziękuje za uwagę
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement