This is what I have in my view:

  |                     <h:outputText value="Count = 
#{cspecInfo.attributeCount}" />
  |                     <h:dataTable value="#{cspecInfo.componentAttributes}" 
var="attr"
  |                             rows="25" >
  |                             <h:column>
  |                                     <h:outputText value="#{attr.name}" />
  |                             </h:column>
  |                     </h:dataTable>  
  | 
The cspecInfo refers to an Entity that has a Set that is obtained as the value. 
(The output above refers to a transient attribute in the Entity bean 
(attributeCount). 

I get the correct count as output. So I know I have things in the set.
When I try to render the #{attr.name} I get the following error:

  | ALLVARLIG: Error Rendering View[/cspec-view.xhtml]
  | javax.faces.el.PropertyNotFoundException: /cspec-view.xhtml @113,43 
value="#{attr.name}": Bean: org.hibernate.collection.PersistentSet, property: 
name
  |         at 
com.sun.facelets.el.LegacyValueBinding.getValue(LegacyValueBinding.java:58)
  |         at javax.faces.component.UIOutput.getValue(UIOutput.java:77)
  |         at 
org.apache.myfaces.shared_impl.renderkit.RendererUtils.getStringValue(RendererUtils.java:217)
  |         at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.renderOutput(HtmlTextRendererBase.java:69)
  |         at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.encodeEnd(HtmlTextRendererBase.java:57)
  |         at 
javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:536)
  |         at 
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:442)
  |         at 
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChildren(RendererUtils.java:419)
  |         at 
org.apache.myfaces.shared_impl.renderkit.RendererUtils.renderChild(RendererUtils.java:440)
  |         at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.renderColumnBody(HtmlTableRendererBase.java:332)
  |         at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeColumnChild(HtmlTableRendererBase.java:301)
  |         at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:277)
  |         at 
org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:123)
  |         at 
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:524)
  |         at 
com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:244)
  |         at 
com.sun.facelets.tag.jsf.ComponentSupport.encodeRecursive(ComponentSupport.java:249)
  |         at 
com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:573)
  |         at 
org.ajax4jsf.framework.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:101)
  |         at 
org.ajax4jsf.framework.ajax.AjaxViewHandler.renderView(AjaxViewHandler.java:222)
  |         at 
org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:384)
  |         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at 
org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:63)
  |         at 
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:57)
  |         at 
org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
  |         at 
org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
  |         at 
org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
  |         at 
org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:79)
  |         at 
org.jboss.seam.web.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:49)
  |         at org.jboss.seam.web.SeamFilter.doFilter(SeamFilter.java:84)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at 
org.ajax4jsf.framework.ajax.xmlfilter.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:75)
  |         at 
org.ajax4jsf.framework.ajax.xmlfilter.BaseFilter.doFilter(BaseFilter.java:213)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  |         at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  |         at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  |         at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  |         at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
  |         at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
  |         at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
  |         at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  |         at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  |         at 
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:156)
  |         at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  |         at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  |         at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  |         at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
  |         at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  |         at 
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
  |         at java.lang.Thread.run(Thread.java:619)
  | 

ComponentAttribute does have the attribute "name".
If I ouput something else - like static string - I get one row per object in 
the set (with the fixed string).

This is what the parent (what cspecInfo refers to) has as definition:

  |     private Set<ComponentAttribute> m_componentAttributes;
  |     @OneToMany(mappedBy="spec")
  |     public Set<ComponentAttribute> getComponentAttributes()
  |     {
  |             return m_componentAttributes;
  |     }
  |     public void setComponentAttributes(Set<ComponentAttribute> attributes)
  |     {
  |             m_componentAttributes = attributes;
  |     }
  |     @Transient 
  |     public String getAttributeCount()
  |     {
  |             if(m_componentAttributes == null)
  |                     return "0";
  |             return new Integer(m_componentAttributes.size()).toString();
  |     }
  | 
And the corresponding part in the detail entity looks like this:

  |     private ComponentSpec m_spec;
  | 
  |     @NotNull
  |     @Length(min = 1, max = 100)
  |     @Column(unique = true)
  |     public String getName()
  |     {
  |             return m_name;
  |     }
  | 
(it has an id column called 'cattr_id')

So - what am I doing wrong? 
Should I access the data some other way?

Regards
- henrik

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4033410#4033410

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4033410
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to