RequestMethod POST和GET在同一个Controller中?

Mic*_*idt 10 java model-view-controller spring request

首先,这是我的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";
}
Run Code Online (Sandbox Code Playgroud)

当我访问该站点时if,如果有一些参数,则使用-statement进行检查.
如果没有,那么它应该只显示我的表格.然后,当我填写表单时,它发送它,POST现在有一些参数,它通过if-statement.

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

那么是否有一个解决方案来处理相同的控制器POSTGET请求?

Cor*_*han 23

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

@RequestMapping(value = "/esta", method = {RequestMethod.POST, RequestMethod.GET})
Run Code Online (Sandbox Code Playgroud)