[英]Spring @Controller Separating GET and POST mappings
我正在使用Spring MVC和注釋配置。 我有一個用於處理HTTP GET調用的控制器類:
@Controller
@RequestMapping("/form")
public class FormController {
@RequestMapping(value = "/{table}/{identifier}/edit", method = RequestMethod.GET)
public ModelAndView getEditView(ModelMap map, @PathVariable String table, @PathVariable Object identifier) {
//generate the view for this record
}
並且用於處理表單的Controller在該URL上提交
@Controller
@RequestMapping("/form")
public class FormSaveController {
@RequestMapping(value = "/{table}/{identifier}/edit", method = RequestMethod.POST)
public ModelAndView saveView(WebRequest request, @PathVariable String table, @PathVariable Object identifier) {
//save the updated values and redirect to view
}
當我試圖啟動我的容器時,spring抱怨道
Caused by: java.lang.IllegalStateException: Cannot map handler 'FormSaveController' to URL path [/form/{table}/{identifier}/edit]: There is already handler of type [class com.company.web.FormController] mapped.
這似乎表明我正在嘗試做的事情在Spring中不受支持。 我試圖將控制器用於生成表單的原因與保存表單的控制器分開,因為我使用Springs @ExceptionHandler
來處理發生的任何運行時異常,並且我想處理異常以顯示視圖而不是異常用於保存記錄。
有沒有不同的方法來處理我想要做的事情(對特定種類的請求使用Springs @ExceptionHandler
注釋?)
你嘗試過使用同一個班級嗎? 我認為那會有用。 如果您希望使用ExceptionHandler,請嘗試使用HandlerExceptionResolver
我試圖將控制器用於生成表單的原因與保存表單的控制器分開,因為我使用Springs
@ExceptionHandler
來處理發生的任何運行時異常,並且我想處理異常以顯示視圖而不是異常用於保存記錄
我想你的視圖模板引擎會拋出不同類型層次結構的異常,而不是在數據存儲區中保存記錄時遇到的異常。 將這些方法放在同一個類中可能最容易,然后通過一種方式映射視圖引擎類型的異常和另一種DB異常來解決@ExceptionResolver
問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.