On 5/5/10 2:57 AM, RogerV wrote:
The final clue! I changed my jsp to;

<s:checkboxlist name="selectedroles" list="%{availableroles}"
value="%{preselectedroles}"/>


checkbox?selectedroles=ROLE_ADMIN&selectedroles=ROLE_USER&selectedroles=ROLE_UBER&__multiselect_selectedroles=

is sent. I saw an exception being thrown "No such method for
setSelectedRoles(String) and the message

Very confusing that everyplace I've seen you have a lower case "r" in selectedroles, but here it's looking for capital "r"...

So I changed the method setSelectedRoles(Map<String,String>  selectedRoles)
to setSelectedRoles(String selectedRoles) and stuck the debugger on it, and
what comes back is, as you suspected all along, a string value that contains
a comma separated list of the selected values ie
ROLE_ADMIN,ROLE_USER,ROLE_UBER which I can easily split&  shove back into
the map of selected Roles.

The framework can be a bit more helpful than that -- if you make that take an array of Strings it should pre-split them up for you. I'd go through and make sure you've got your capitalization consistent everywhere, too.

Phew! I would never have worked that one out without your help and I
certainly wouldn't have worked it out from the available documentation.

Sorry you had such difficulty. If you have any specific suggestions for the documentation, please help us improve it so that it can better help the next person...

Either checkboxlist will not return a map under any circumstances, in which
case the documentation should say so, or there is a way of forcing the name
attribute to evaluate to something that Struts would interpret as a map
entry that I haven't worked out yet.

The tags are really only a server output thing -- is there someplace it appears to say how the results will come back? Documentation for that should be wherever the params interceptor is documented. Having that generate a map would require pairs of linked data coming in with the request, and I can't think of how that'd happen with standard html tags...

-Dale

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to