首先,这是我的Controller
:
@RequestMapping(value = "/esta", method = RequestMethod.POST)
public String handleRequest(HttpServletRequest request) {
Esta estaobject = new Esta();
// To test, if the parameters are set
String user = request.getParameter("user");
String name = request.getParameter("name");
String shortname = request.getParameter("shortname");
String was_admin_string = request.getParameter("was_admin");
String sap_nr = request.getParameter("sap_nr");
String etl_string = request.getParameter("etl");
if (user != null && name != null && shortname != null && was_admin_string != null && sap_nr != null && etl_string != null) {
some code...
}
request.getSession().setAttribute("esta", estaobject);
return "esta";
}
当我访问该网站时,如果有一些参数,请使用if
- 语句进行检查
如果没有,那么它应该只显示我的表格。然后,当我填写表单时,它会使用POST
发送它,现在有一些参数,它会通过if
- 语句。
我的问题是:当我第一次访问该网站时,它不是POST
- 请求,因此我收到错误消息Request method 'GET' not supported
。
但是将表单更改为GET
- 请求不适合我。它必须是POST
。
那么在POST
和GET
请求中是否有处理相同控制器的解决方案?
答案 0 :(得分:23)
将它映射到的方法值数组,如下所示:
@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET})
答案 1 :(得分:2)
或者您可以编写单独的方法
@RequestMapping(value = {#some_vale}, method = RequestMethod.GET)
public random_method #1{
}
@RequestMapping(value = { #some_value }, method = RequestMethod.POST)
public random_method #2{
}
现在您可以实现访问特定页面和另一个填写表单。 希望这会对你有所帮助。
答案 2 :(得分:0)
在Spring中,开发人员可以在同一个控制器上使用RequestMethod.POST和RequestMethod.GET,只需创建一个类似的方法数组:
@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET})
public String handleRequest(HttpServletRequest request) {
//Implementation of your code.
}