2016-04-01 41 views
0

コントローラー1:spring 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> 

私は1つのページに従業員のリストを表示していると私は、従業員をクリックしたときにする必要があります私を詳細ページ(コントローラ2)に連れて行きます。そこには、IDや名前などの従業員を取得するための直接的なサービス方法はありません。

従業員オブジェクトをビューからコントローラに送信する方法を教えてください。詳細ページに行くべきリンクをクリックしてください。

+0

どのようにリストしていますか?そのコードを表示できますか? – ChiefTwoPencils

+0

私はあなたがAJAX呼び出しではなく、ビューからコントローラに何かを渡す必要がある場合、より多くの情報を追加する必要があると思います。 –

+0

なぜあなたはサービスメソッドを書いていないのですか?従業員の行をクリックするとリストページが表示され、IDまたは名前で従業員の詳細を取得できます。 E. G./emp /(id)getリクエスト。 –

答えて

0

thisまたはthis oneのようなものです。私は<form>要素を作成し、Employeeオブジェクトをコントローラにポストする以外の選択肢はないと思います。

+0

で見つけるには直接的な方法はありません。私はもう1つは私の近くにあると思いますが、詳細ページに入るためにPOST(私はちょうど従業員オブジェクトでGETする必要があります) – dummy

+0

GETメソッドを使って '

'を送ることができます。 [ここの例](http://stackoverflow.com/questions/29640084/sending-html-form-data-to-spring-rest-web-service) –

関連する問題