必需的String参数不存在Spring MVC

时间:2016-09-20 08:06:29

标签: java spring spring-mvc http-request-parameters

我想使用以下方式在浏览器中访问两个不同的页面:

http://localhost:8080/name?views

http://localhost:8080/name?uviews

但是我收到错误必需字符串参数'uviews'在我使用第一个url时不存在而且我得到必需字符串参数当我使用第二个时,'views'不存在。

这是我的回复正文

@ResponseBody     
public Object getViewInJson(@RequestParam("views") String views ,@RequestParam("uviews") String uviews) throws IOException{

 loader = new AnalyticsLoader();



    return loader.AnalyticsLoader(views,uviews);
}

如何访问视图和uviews?

6 个答案:

答案 0 :(得分:7)

required=false属性添加到@RequestParam。更改为

@RequestParam(required=false,name="views") String view,..

答案 1 :(得分:4)

required=false添加到@RequestParam表示法中。或者您可以决定明确使用一个,将其设置为required=false并将另一个设置为defaultValue

有关详细信息,请参阅documentation

答案 2 :(得分:0)

请检查您的春季版本,3.2.3中有一个错误。 https://jira.spring.io/browse/SPR-10592

答案 3 :(得分:0)

我在postman中也遇到了同样的问题,添加required=falsedefalutValue可能会有所帮助。但required = false给了我NULL Exception。邮递员中的Clearing / Removing Headers可以帮助我。

答案 4 :(得分:0)

required=false属性添加到@RequestParam

@RequestParam(required=false,name="views")

答案 5 :(得分:0)

代替:

@ResponseBody     
public Object getViewInJson(@RequestParam("views") String views, @RequestParam("uviews") String uviews) throws IOException{
    ...
}

这样做:

@ResponseBody     
public Object getViewInJson(@RequestParam("views[]") String views, @RequestParam("uviews[]") String uviews) throws IOException{
    ...
}

将括号添加到参数的末尾,其他任何东西都是正常的。