我有问题哪个解决方案可能很明显。
我想将post和get方法绑定到应用程序基础url。我正在使用带注释的控制器,其中一种方法如下:
@RequestMapping(value = { "/*" }, method = { RequestMethod.GET, RequestMethod.POST })
public void init(HttpServletRequest request) {
logger.info("Method: " + request.getMethod());
}
在我发送get或post请求的两种情况下,我总是得到结果“Method:GET”。我怎么解决这个问题?
似乎应用程序中的某处有重定向但是找不到任何内容。
提前致谢!
答案 0 :(得分: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>
并在浏览器中打开
或使用插件到您选择的浏览器(谷歌)&#34; REST服务测试&#34;
有关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