Reputation: 3556
I want to access two different pages in my browser using:
http://localhost:8080/name?views
and
http://localhost:8080/name?uviews
But I'm getting error Required String parameter 'uviews' is not present when I use first url and I get Required String parameter 'views' is not present when I use second one.
here is my Response body
@ResponseBody
public Object getViewInJson(@RequestParam("views") String views ,@RequestParam("uviews") String uviews) throws IOException{
loader = new AnalyticsLoader();
return loader.AnalyticsLoader(views,uviews);
}
How can access both views and uviews?
Upvotes: 10
Views: 104196
Reputation: 19
Instead of:
@ResponseBody
public Object getViewInJson(@RequestParam("views") String views, @RequestParam("uviews") String uviews) throws IOException{
...
}
Do this:
@ResponseBody
public Object getViewInJson(@RequestParam("views[]") String views, @RequestParam("uviews[]") String uviews) throws IOException{
...
}
Add brackets to the end of the param, anything else as normal.
Upvotes: -1
Reputation: 13727
I was using Postman
for API hit, Adding required=false
and defalutValue
might be helpful, but required=false
results in NULL Exception
. Then I have Removed the Headers (can Authorization header)
in Postman and its works.
Upvotes: 2
Reputation: 41
please check your spring version, there is a bug in 3.2.3. https://jira.spring.io/browse/SPR-10592
Upvotes: 0
Reputation: 3431
Add required=false
attribute to @RequestParam
..Change to
@RequestParam(required=false,name="views") String view,..
Upvotes: 28
Reputation: 13930
Add required=false
to the @RequestParam
notation for both. Or you could decide to explicitly use one, set it to required=false
and set the other as the defaultValue
.
See the documentation for further information.
Upvotes: 4