[ 
https://issues.apache.org/jira/browse/TRINIDAD-1523?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12745877#action_12745877
 ] 

Vijay Ramalingam commented on TRINIDAD-1523:
--------------------------------------------

Thanks Rafael. I tried out and it worked :-)

Thanks
-vijay

> Issue with <tr:selectOneChoice> - Implementing dependent select boxes
> ---------------------------------------------------------------------
>
>                 Key: TRINIDAD-1523
>                 URL: https://issues.apache.org/jira/browse/TRINIDAD-1523
>             Project: MyFaces Trinidad
>          Issue Type: Bug
>          Components: Components
>    Affects Versions:  1.2.11-core
>         Environment: Windows
>            Reporter: Vijay Ramalingam
>
> I am trying to implement dependent select boxes using trinidad. I have 2 drop 
> down box, say A and B. I have set the autoSubmit="true" in dropdown A and 
> specified partialTriggers with dropdwon B. When i change the A drop down B 
> changes, as expected. But when i change any value in B dropdown and again 
> change A. I get the below error.
> java.lang.IndexOutOfBoundsException: SelectOne submittedValue''s index 1 is 
> out of bounds. It should be between 0 and 0
>         at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleSelectOneRenderer.__getIndex(SimpleSelectOneRenderer.java:423)
>         at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleSelectOneRenderer._convertIndexedSubmittedValue(SimpleSelectOneRenderer.java:214)
>         at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.SimpleSelectOneRenderer.getConvertedValue(SimpleSelectOneRenderer.java:181)
>         at 
> org.apache.myfaces.trinidadinternal.renderkit.core.xhtml.InputLabelAndMessageRenderer.getConvertedValue(InputLabelAndMessageRenderer.java:65)
>         at 
> org.apache.myfaces.trinidad.component.UIXEditableValue.getConvertedValue(UIXEditableValue.java:422)
>         at 
> org.apache.myfaces.trinidad.component.UIXEditableValue.validate(UIXEditableValue.java:164)
>         at 
> org.apache.myfaces.trinidad.component.UIXEditableValue._executeValidate(UIXEditableValue.java:488)
>         at 
> org.apache.myfaces.trinidad.component.UIXEditableValue.processValidators(UIXEditableValue.java:270)
>         at javax.faces.component.UIForm.processValidators(UIForm.java:74)
>         at 
> javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:709)
>         at javax.faces.component.UIViewRoot.access$101(UIViewRoot.java:43)
>         at javax.faces.component.UIViewRoot$2.process(UIViewRoot.java:97)
>         at javax.faces.component.UIViewRoot.process(UIViewRoot.java:206)
>         at 
> javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:93)
>         at 
> org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:32)
>         at 
> org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
>         at 
> org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
>         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:148)
>         at arch.jsf.JsfResource.process(JsfResource.java:145)
>         at 
> arch.presentation.beans.WebApplication._doServletFilterForRequest(WebApplication.java:564)
>         at 
> arch.presentation.beans.WebApplication.processResource(WebApplication.java:1368)
>         at 
> arch.presentation.beans.WebApplication.processRequest(WebApplication.java:2531)
>         at 
> arch.service.beans.ServiceContainer.processRequest(ServiceContainer.java:3913)
>         at arch.no.engine.Context.processRequest(Context.java:68)
>         at arch.no.engine.HttpConnector.processRequest(HttpConnector.java:58)
>         at arch.no.http.Response.prepare(Response.java:563)
>         at arch.no.http.Response._execute(Response.java:1975)
>         at arch.no.http.Response.execute(Response.java:1910)
>         at arch.no.http.HttpThreadPool._run(HttpThreadPool.java:32)
>         at arch.util.ThreadPool._runLoopBody(ThreadPool.java:215)
>         at arch.util.ThreadPool._runForThread(ThreadPool.java:232)
>         at arch.util.ThreadPool.access$000(ThreadPool.java:5)
>         at arch.util.ThreadPool$1.run(ThreadPool.java:97)
> Please find my XHTML content
> ------------------------------------------
> <f:view>
>    <h:form id="dropDownForm">
>    <tr:selectOneChoice 
> valueChangeListener="#{dropdownbean.processAccountFeatureChange}" 
> binding="#{dropdownbean.selectAccountFeature}" autoSubmit="true" 
> value="#{dropdownbean.accountFeature}" id="selectAccountFeature" size="1">
>      <f:selectItems value="#{dropdownbean.accountFeatureMap}" />
>    </tr:selectOneChoice> 
>    <tr:selectOneChoice binding="#{dropdownbean.selectCardOrCheckType}" 
> partialTriggers="selectAccountFeature" 
> value="#{dropdownbean.cardOrCheckType}" id="selectCardOrCheckType" size="1">
>      <f:selectItems value="#{dropdownbean.checkTypeMap}" />
>    </tr:selectOneChoice>
>     </h:form>
>  </f:view> 
> Please find my Bean code
> ------------------------------------
> public class DropDownBean  {
>       CoreSelectOneChoice selectAccountFeature;
>       
>       CoreSelectOneChoice selectCardOrCheckType;
>       
>       String accountFeature="1";
>       
>       String cardOrCheckType="SCO";
>       
>       Map accountFeatureMap;
>       
>       Map checkTypeMap;
>       public DropDownBean(){
>               super();
>               AMAConfig amaConfig = new AMAConfig();
>               accountFeatureMap = amaConfig.getAcctFeatureMap();
>               checkTypeMap = amaConfig.getSilverLevelCheckTypeMap();
>       }
>       
>       public void setSelectAccountFeature(CoreSelectOneChoice 
> selectAccountFeature){
>               this.selectAccountFeature = selectAccountFeature;
>       }
>       public CoreSelectOneChoice getSelectAccountFeature(){
>               return this.selectAccountFeature;
>       }
>       
>       public void setSelectCardOrCheckType(CoreSelectOneChoice 
> selectCardOrCheckType){
>               this.selectCardOrCheckType = selectCardOrCheckType;
>       }
>       public CoreSelectOneChoice getSelectCardOrCheckType(){
>               return this.selectCardOrCheckType;
>       }
>       
>       public String getAccountFeature(){
>               return this.accountFeature;
>       }
>       public void setAccountFeature(String accountFeature){
>               this.accountFeature = accountFeature;
>               
>           
>               AMAConfig amaConfig = (AMAConfig)getValue("#{amaConfig}", 
> AMAConfig.class);             
>          
>           if("1".equals(accountFeature)){
>                 this.cardOrCheckType = "SCO";
>             checkTypeMap = amaConfig.getSilverLevelCheckTypeMap();
>               }else if("2".equals(accountFeature)){
>                 this.cardOrCheckType = "GCC";
>                 checkTypeMap = amaConfig.getGoldLevelCheckTypeMap();
>               }else {
>             this.cardOrCheckType = "PCC";
>             checkTypeMap = amaConfig.getPlatinumLevelCheckTypeMap();
>           }
>       }
>       
>       public void setCardOrCheckType(String cardOrCheckType){
>               this.cardOrCheckType = cardOrCheckType;
>       }
>       public String getCardOrCheckType(){
>               return this.cardOrCheckType;
>       }
>           
>       public Map getAccountFeatureMap(){
>               return this.accountFeatureMap;
>       }
>       
>       public Map getCheckTypeMap(){
>               return this.checkTypeMap;
>       }
>       
>       public void processAccountFeatureChange(ValueChangeEvent vce){
>               System.out.println("\nprocessAccountFeatureChange\n");
>               selectCardOrCheckType.setValue(null);
>       }
> }
> I declared my bean as
> <managed-bean>
>               <managed-bean-name>dropdownbean</managed-bean-name>
>               <managed-bean-class>DropDownBean</managed-bean-class>
>               <managed-bean-scope>request</managed-bean-scope>
>       </managed-bean>
> Please help me.

-- 
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