发布数据时会附加URL

时间:2018-02-14 16:19:09

标签: java spring spring-mvc url

我有一个字段可以输入Date信息。当我点击Submit按钮时,URL会附加一些额外的内容。

我应该得到什么:http://localhost:8080/employee/1

我得到了什么:http://localhost:8080/employee/1?date=2018-02

显然,网址附加了Date。有什么方法可以解决吗?

我的控制器方法:

@RequestMapping("/employee/{id}")
public String showSpecificEmployee(@PathVariable String id, @RequestParam(name = "date", required = false) String date, Model model){

    if(date == null)
        model.addAttribute("employee", employeeService.findEmployeeById(new Long(id)));
    else
        model.addAttribute("employee", employeeService.findEmployeeWithFilteredWorkdaysAndPayments(new Long(id), date));

    return "specificEmployee";
}

2 个答案:

答案 0 :(得分:1)

服务器端:您需要将方法操作指定为POST:

@RequestMapping(value = "/employee/{id}", method = RequestMethod.POST)

客户端:如果您使用FormJS请求,则必须将操作方法​​指定为POST

答案 1 :(得分:1)

您在浏览器中看到的是当前请求的完整网址。 ?的存在表示浏览器已发送GET请求,其参数date的值为2018-02

当您谈到Submit按钮时,这意味着对先前请求的响应包含form元素。然后,请求的类型由method元素的form属性确定,默认情况下为GET

所以你只需要将<form ...>元素更改为<form ... method='POST'>,因为GET个请求在URL中传递了它的参数,POST一个请求将它们传递给它体。