java - Spring @Controller 分离 GET 和 POST 映射

标签 java spring spring-mvc

我正在使用带有注解配置的 Spring MVC。我有一个用于处理 HTTP GET 调用的 Controller 类:

@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
    }

以及用于处理在该 URL 上提交的表单的 Controller

@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 中不受支持。我试图将用于生成表单的 Controller 与保存表单的 Controller 分开的原因是因为我正在使用 Springs @ExceptionHandler 来处理发生的任何运行时异常,并且我想处理一个异常以不同于保存记录的异常方式显示 View 。

是否有不同的方式来处理我正在尝试做的事情(针对特定类型的请求使用 Springs @ExceptionHandler 注释?)

最佳答案

您是否尝试过在同一个类(class)中使用?我认为那会起作用。如果您想使用 ExceptionHandler,请尝试 HandlerExceptionResolver

关于java - Spring @Controller 分离 GET 和 POST 映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6099446/

相关文章:

java - 如何为 tomcat web 应用程序实现控制台命令行?

java - 如果在使用@RequestParam 时需要自定义转换器,我应该使用什么?

java - Hibernate 按条件分组

java - Websockets、SockJs、Stomp、Spring、RabbitMQ、自动删除用户特定队列

java - View.getId 和 R.id.viewLabel 返回不同的值

spring - 如何使用 Spring MVC\Boot 正确实现返回图像列表的 REST 服务?

javascript - 验证器 : onSuccess to return true or false not excuting

java - Spring中的转换服务

发件人时区的javax mail getReceivedDate

java - 使用类名运行 maven 测试 - Maven 如何找到该类?