1

I am binding the component inside <ui:repeat>

<ui:repeat var="item" value="#{eTManagedBean.capacity}"  varStatus="tableIndex">
<h:panelGrid binding="#{eTManagedBean.capacity[tableIndex.index].subGrid}" /></ui:repeat>

But it showing exception

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/mdf-portal-web].[Faces Servlet]] (http-localhost-127.0.0.1-8080-11) Servlet.service() for servlet Faces Servlet threw exception: java.lang.IllegalArgumentException at javax.el.ListELResolver.toInteger(ListELResolver.java:409) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] at javax.el.ListELResolver.getValue(ListELResolver.java:199) [jboss-el-api_2.2_spec-1.0.0.Final.jar:1.0.0.Final] at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) [jsf-impl-2.1.7-jbossorg-2.jar:] at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) [jsf-impl-2.1.7-jbossorg-2.jar:] at org.apache.el.parser.AstValue.getTarget(AstValue.java:121) [jbossweb-7.0.13.Final.jar:] at org.apache.el.parser.AstValue.setValue(AstValue.java:196) [jbossweb-7.0.13.Final.jar:] at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:257) [jbossweb-7.0.13.Final.jar:] at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131) [jsf-impl-2.1.7-jbossorg-2.jar:] at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1949) [jsf-impl-2.1.7-jbossorg-2.jar:] at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1144) [jsf-impl-2.1.7-jbossorg-2.jar:] at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:518) [jsf-impl-2.1.7-jbossorg-2.jar:] at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:168) [jsf-impl-2.1.7-jbossorg-2.jar:] at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:120) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final] at javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:98) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final] at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(DelegatingMetaTagHandler.java:137) [jboss-jsf-api_2.1_spec-2.0.1.Final.jar:2.0.1.Final] at org.richfaces.view.facelets.html.BehaviorsAddingComponentHandlerWrapper.applyNextHandler(BehaviorsAddingComponentHandlerWrapper.java:53) [richfaces-components-ui-4.3.5.Final.jar:4.3.5.Final] at com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:195)

and when i am trying to access from the var

<h:panelGrid id="mainGrid1"  binding="#{item.subGrid}" />

then it end up with

ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/mdf-portal-web].[Faces Servlet]] (http-localhost-127.0.0.1-8080-10) Servlet.service() for servlet Faces Servlet threw exception: javax.el.PropertyNotFoundException: /pages/TermCapacityCreation.xhtml @74,28 binding="#{item.subGrid}": Target Unreachable, identifier 'item' resolved to null at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:133) [jsf-impl-2.1.7-jbossorg-2.jar:] at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1949) [jsf-impl-2.1.7-jbossorg-2.jar:] at com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1144) [jsf-impl-2.1.7-jbossorg-2.jar:]

While in my class i already created object with get/set method

public class CapacityVO{
 //Other variable 
 private HtmlPanelGrid subGrid;
//get,set() method as well
}
BalusC
  • 1,082,665
  • 372
  • 3,610
  • 3,555
dileep H
  • 355
  • 1
  • 3
  • 9

1 Answers1

0

Well this is strange, hoever common for JSF implementations. Recently, in pre2.0 times, I had used <a4j:repeat> to overcome such issues. Now I suppose it is better to use <c:forEach> — it will simply work.

This happens due to state saving in implementation of ui:repeat as render-time component.

Ilya Dyoshin
  • 4,459
  • 1
  • 19
  • 18