2016-04-01 2 views
0

Контроллер 1:Как мы можем передать объект из вида контроллеру весной mvc?

@RequestMapping(value = "/allEmployees", method = RequestMethod.GET) 
public String getAllEmployees(@ModelAttribute("employeeListForm") EmployeeListForm employeeListForm, HttpServletRequest request, HttpServletResponse response, Model model, BindingResult errors) throws Exception { 
    List<Employee> subList = null; 
    allEmployees = empService.getAllEmployees(categoryId);  
    employeeListForm.setAllEmployees("allEmployees");   
    employeeListForm.setCategory("IT");   
    model.addAttribute("etcSearchForm", etcSearchForm); 
    return ALL_EMP_VIEW; 
} 

Контроллер 2:

@RequestMapping(value = "/EmployeeDetail", method = RequestMethod.GET) 
public String getEmpDetail((@ModelAttribute("empDetailForm") EmployeeDetailForm empDetailForm, HttpServletRequest request, HttpServletResponse response, Model model, BindingResult errors) throws Exception { 

/*there is no direct approach to get the employee by id how     should I get the 
    employee object from list page to deatil page 
*/ 
    empDetailForm.setSalary(emp.getSalary()); 
    empDetailForm.setTitle(emp.getTitle()); 
    empDetailForm.setName(emp.getName()); 
    model.addAttribute("empDetailForm", empDetailForm); 
    return ALL_EMP_Detail_Form; 
} 

Вид:

<div th:if="${allEmplListForm.aAllEmployees.size() > 0}" th:each="emp : ${allEmplListForm.aAllEmployees}" th:object="${emp}" >       
    <a th:href="@{/EmployeeDetail)}" class="link"> 
     <div><p class="name" th:text="*{name}"></p></div> 
     <div><p th:text="*{date}"></p> <p th:text="*{title}"></p></div> 
     <div><p class="salary" th:text="*{salary}"></p></div> 
    </a> 
</div> 

Я отображая список сотрудников на одной странице, и когда я нажимаю на работника он должен возьмите меня на страницу подробностей (контроллер 2), где нет прямого метода обслуживания, чтобы получить сотрудника по id или имени или другому.

Как отправить объект сотрудника из представления на контроллер. Нажав на ссылку, она должна перейти на страницу подробностей.

+0

Как вы их перечисляете; вы можете показать код для этого? – ChiefTwoPencils

+0

Я думаю, вам нужно добавить дополнительную информацию .. но если вам нужно передать что-то из представления в контроллер, это будет вызов AJAX. –

+0

Почему бы вам не написать метод службы, а затем на странице списка при нажатии на строку сотрудника yo можно получить детали сотрудника по идентификатору или имени. E. G./emp/(id) получить запрос. –

ответ

0

Ваш вопрос: this или this one. Я думаю, что нет другого выбора, кроме элемента <form> и отправки объекта Employee контроллеру.

+0

Я думаю, что второй ближе к моему, но я не хочу использовать POST (мне просто нужно GET с объектом employee), чтобы перейти на страницу подробностей. – dummy

+0

Вы можете отправить '

' методом GET. [Здесь пример] (http://stackoverflow.com/questions/29640084/sending-html-form-data-to-spring-rest-web-service) –

Смежные вопросы