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.