如何检查是否设置了参数?

时间:2017-06-16 08:34:29

标签: java spring controller

是否可以在一个控制器处理程序中区分这两个请求URI:

http://my-uri/
http://my-uri/?with_empty_param 

2 个答案:

答案 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() {}