1

我有问题哪个解决方案可能很明显。

我想将 post 和 get 方法绑定到应用程序基本 url。我正在使用带注释的控制器,其中一种方法如下所示:

@RequestMapping(value = { "/*" }, method = { RequestMethod.GET, RequestMethod.POST })
public void init(HttpServletRequest request) {
     logger.info("Method: " + request.getMethod());
}

在这两种情况下,当我发送 get 或 post 请求时,我总是得到结果“方法:GET”。我怎么解决这个问题?

似乎应用程序中的某个地方有重定向,但找不到任何重定向。

提前致谢!

4

1 回答 1

0

问题在于您如何测试程序,您只能通过在浏览器窗口中输入 url 来使用 GET 方法来测试 POST 您可以创建简单的 html 页面,其内容如下

<form action="http://localhost:8080/yourapp/yourEntryPoint" method="post">
  <input type="text" name="data" value="mydata" />
  <input type="submit" />
</form>

并在浏览器中打开

或使用插件到您选择的浏览器(谷歌)“REST 服务测试”

更多关于 Spring MVC http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/htmlsingle/#mvc-ann-requestmapping

为了将其映射到该控制器的基本 url,您不需要将 value= 放在方法上

    @Controller
    @RequestMapping("/yourEntryPoint")
    public class YourClass {

        @RequestMapping(method =  {RequestMethod.GET, RequestMethod.POST })
         public void get() {
            logger.info("Method: " + request.getMethod());
        }

       @RequestMapping(value="/new", method = RequestMethod.GET)
        public void getNewForm() {
        logger.info("NewForm" );
    }

    }

这会将请求 POST 和 GET 映射到 url

http://host:port/yourapp/yourEntryPoint

这将映射到 GET

http://host:port/yourapp/yourEntryPoint/new
于 2012-11-28T22:59:38.173 回答