mamruoc
mamruoc

Reputation: 877

RequestParam get array from select option html form

I am trying to get multiple values from a multiple select option box in html.

I get in to my controller:

/test?t=1&t=2&t=3

In the controller, I try to get the int array:

@RequestParam(value = "t", required = true) int[] t

But when I check it using:

t.length

I only see 1, which means Spring only gets 1 parameter, but I expected 3. Anybody have any idea?

Upvotes: 3

Views: 12122

Answers (2)

user2121434
user2121434

Reputation: 81

This is working as expected with Spring 3.2 version. I have a method:

@RequestMapping(value = "/blueprint", method = RequestMethod.GET)
public ModelAndView blueprint(@RequestParam(value = "blueprints", required = false) int[] blueprints)

and when using

http://localhost:9000/blueprint?blueprints=2&blueprints=1

or

http://localhost:9000/nbu-portal-webapp/blueprint?blueprints=1,2

the values are being converted to the correct int array.

Upvotes: 4

John Farrelly
John Farrelly

Reputation: 7459

I don't think that spring will convert a parameter array to a specific type other than String, so you should try the following:

@RequestParam(value = "t", required = true) String[] t

and then use Integer.parseInt() to convert the String to an int.

Upvotes: 5

Related Questions