是否可以在一个控制器处理程序中区分这两个请求URI:
http://my-uri/
http://my-uri/?with_empty_param
答案 0 :(得分:1)
HttpServletRequest对象有一个ParameterMap
对象,用于映射参数名称及其值。
使用此映射,我们可以检查是否在servlet请求中传递了参数。
// Check if with_empty_param parameter exists
if (request.getParameterMap().containsKey("with_empty_param ")) {
String with_empty_param = request.getParameter("with_empty_param ");
}
如果你想使用Spring方式,你可以这样做:
@RequestMapping(value = {"/init"}, method = RequestMethod.GET)
public String methodName(
@RequestParam Map<String,String> allParams, ModelMap model) {
if (allParams.containsKey("with_empty_param ")) {
...
}
答案 1 :(得分:1)
@RequestMapping
注释有一个params
参数,您可以使用它。
@RequestMapping
public void method1() {}
并检查参数。
@RequestMapping(params={"param"})
public void method2() {}
您也可以使用!
否定支票,因此如果该参数不存在。
@RequestMapping(params={"!param"})
public void method3() {}