[ 
https://issues.apache.org/struts/browse/WW-2802?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tim Stavenger updated WW-2802:
------------------------------

    Component/s: Core Interceptors
        Summary: Unselected multi-select boxes do not post back request 
parameters, therefore the associated attributes do not get cleared   (was: 
Multi-select boxes do not post back a request parameters, therefore the 
associated attributes to not get cleared )

> Unselected multi-select boxes do not post back request parameters, therefore 
> the associated attributes do not get cleared 
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WW-2802
>                 URL: https://issues.apache.org/struts/browse/WW-2802
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>    Affects Versions: 2.1.2
>            Reporter: Tim Stavenger
>         Attachments: MultiselectInterceptor.java, select.ftl
>
>
> Internet Explorer 7 (and I would assume other browsers) does not post back 
> request parameters for multi-select boxes that have no selections. My 
> understanding is that this is by design -- the HTML spec does not require an 
> unselected muli-select box to be posted back as a request parameter.
> This is akin to the checkbox, where an unchecked checkbox does not get posted 
> back.
> A problem arises when a particular Collection backing a multi-select box 
> needs to be cleared. The user would unselect all values in the multi-select 
> box and submit the page. But since the browser doesn't post any request 
> parameters, Struts leaves the Collection alone. The original values are left 
> alone instead of cleared as desired.
> I propose a similar solution for this problem as is done for the checkbox. A 
> hidden field can be added for every multi-select box that is searched for in 
> an interceptor. If in the interceptor, only the hidden field is found (and 
> therefore the component was left unselected), the interceptor could add a new 
> parameter with its value as an empty array.
> I've attached updated select.ftl and a new MutliselectInterceptor. I 
> apologize in advance if I'm not following protocol... I can't seem to find 
> instructions for that (I'm sure it is out there somewhere...). The 
> interceptor will also need to be added to struts-default.xml and placed in 
> front of the params interceptor. I would suspect that an easy thing to do 
> would be to add it in at the same places where the checkbox interceptor is 
> found.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to