GaryF GaryF - 8 days ago 5
Java Question

Spring MVC and Checkboxes

I'm using Spring MVC 3.0 and can't quite see all the parts to this problem: my controller will produce a list of domain objects. Let's say a simple User object with firstName, lastName, age, and role properties. I want to output that list of users in a table (one column per property), each row also having a checkbox which are all selected by default. The person using the page can then potentially deselect some of them. When they hit the submit button, I'd like to be able to take the list of selected users and do something with them.

I know there is a form:checkboxes tag in Spring, but I can't quite see how to use it and how to get the results in the controller.

Any help or suggestions?

Answer

If you User object has an id field, you can submit ids of selected users like this (you don't even need Spring's form tag for this simple scenario):

<form ...>
    <c:foreach var = "user" items = "${users}">
        <input type = "checkbox" name = "userIds" value = "${user.id}" checked = "checked" /> <c:out value = "${user.firstName}" /> ...
    </c:foreach>
    ...
</form>

--

@RequestMapping (...)
public void submitUsers(@RequestParam(value = "userIds", optional = true) long[] userIds)
{
    ...
}