10

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?

LeTadas
  • 3,436
  • 9
  • 33
  • 65

5 Answers5

28

Add required=false attribute to @RequestParam..Change to

@RequestParam(required=false,name="views") String view,..
Prasanna Kumar H A
  • 3,341
  • 6
  • 24
  • 52
4

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.

ChiefTwoPencils
  • 13,548
  • 8
  • 49
  • 75
1

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.

Romil Patel
  • 12,879
  • 7
  • 47
  • 76
0

please check your spring version, there is a bug in 3.2.3. https://jira.spring.io/browse/SPR-10592

Lyn
  • 41
  • 1
  • 5
-1

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.

SMontiel
  • 19
  • 4