10

首先,这是我的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-statement 检查是否有一些参数。
如果没有,那么它应该只显示我的表单。然后,当我填写表格时,它会发送它,POST现在有一些参数,它会通过if-statement。

我的问题是:当我第一次访问该站点时,它不是POST-request,所以我收到错误消息Request method 'GET' not supported
但是将表单更改为GET-request 对我来说不是一个选择。一定是POST

那么有没有解决方案来处理POSTGET请求中的相同控制器?

4

3 回答 3

23

使其成为映射到的方法值数组,如下所示:

@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET})
于 2013-05-17T06:38:59.830 回答
2

或者您可以编写单独的方法

@RequestMapping(value = {#some_vale}, method = RequestMethod.GET)
public random_method #1{
}

@RequestMapping(value = { #some_value }, method = RequestMethod.POST)
public random_method #2{
}

现在您可以实现您访问特定页面和另一个填写表格。希望这会帮助你。

于 2014-07-25T06:18:46.480 回答
0

在 spring 中,开发人员可以在同一个控制器上同时使用 RequestMethod.POST 和 RequestMethod.GET ,只需制作一个这样的方法数组:

@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET})
public String handleRequest(HttpServletRequest request) {
//Implementation of your code.
} 
于 2015-02-20T05:10:04.350 回答