我有一个字段可以输入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";
}
答案 0 :(得分:1)
服务器端:您需要将方法操作指定为POST:
@RequestMapping(value = "/employee/{id}", method = RequestMethod.POST)
客户端:如果您使用Form
或JS
请求,则必须将操作方法指定为POST
。
答案 1 :(得分:1)
您在浏览器中看到的是当前请求的完整网址。 ?
的存在表示浏览器已发送GET
请求,其参数date
的值为2018-02
。
当您谈到Submit
按钮时,这意味着对先前请求的响应包含form
元素。然后,请求的类型由method
元素的form
属性确定,默认情况下为GET
。
所以你只需要将<form ...>
元素更改为<form ... method='POST'>
,因为GET
个请求在URL中传递了它的参数,POST
一个请求将它们传递给它体。