You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Wes Wannemacher (JIRA)" <ji...@apache.org> on 2009/06/02 16:22:42 UTC

[jira] Closed: (WW-3120) returns boolean type to ParameterAware

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

Wes Wannemacher closed WW-3120.
-------------------------------

    Resolution: Won't Fix
      Assignee: Wes Wannemacher

To solve your problem, what you'd have to do is remove the checkbox interceptor from the interceptor stack that is running against the affected action. 

I'm somewhat against making an attempt to fix this for 2.1.7 since it will likely affect compatibility, and you can work around this by removing checkbox from the interceptor stack. I am going to close this as "Won't Fix," but you can reopen if you really think we need to code around this. To fix this, I would likely make the behavior configurable, but the default would be to continue acting the way it does now. So, even with a fix, you are going to be forced to mess with your interceptor stack configuration. 

> <s: checkbox> returns boolean type to ParameterAware
> ----------------------------------------------------
>
>                 Key: WW-3120
>                 URL: https://issues.apache.org/struts/browse/WW-3120
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>    Affects Versions: 2.0.11.1
>         Environment: Windows XP SP3, IE6 & Firefox 3.0.10, Apache Tomcat 5.5.17, Java 1.5.0_15
>            Reporter: Jeff Kelley
>            Assignee: Wes Wannemacher
>             Fix For: 2.1.7
>
>
> My action class is implementing ParameterAware so I can get all the name/value pairs on the page. When using the <s:checkbox> tag the value is a boolean in the ParameterMap, not a String[].
> JSP:
> <s:checkbox name="MCN"  fieldValue="true" theme="simple"/>
> Action Class:
> public class Upload extends ActionSupport implements SessionAware, ParameterAware
> {
>      private Map<String, String[]> parameterMap;
>      public String execute()
>      {
>         String[] stuff;
>         stuff = parameterMap.get("MCN");
>         return SUCCESS;
>      }
>      public void setParameters(Map paramMap)
>     {
>         parameterMap = paramMap;
>     }
> }
> When the execute() method runs I get a class cast exception on 'stuff' since it cannot cast from a boolean to a String[].
> When I debug the remote JVM with Eclipse 3.4 I get the following in the parameterMap : {password=[Ljava.lang.String;@1e6ee98, struts.token.name=[Ljava.lang.String;@3a3e21, MCN=false, struts.token=[Ljava.lang.String;@9ac272, uID=[Ljava.lang.String;@1c519e2}.

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