H:数据表不填充

问题描述:

这是相关的(和或跟进)问题:H:数据表不填充

Event Function called before Setter

所以,鉴于我有:

<Td> 
<h:selectOneMenu id="combocarList" 
value="#{customerBean.selectedcar}" 
styleClass="comboStyle" 
valueChangeListener="#{customerBean.loadothercombos}" 
onchange="document.forms[0].submit()" 
> 
<f:selectItem 
    itemLabel="-----------Select--------------" 
    itemValue="None" /> 
<f:selectItems value="#{customerBean.carsList}" /> 
</h:selectOneMenu> 
</Td> 

当用户选择该事件被称为项目从下拉列表和后台bean进行处理来检索其他下拉列表的工作正常,但我也有啊:datatable这是问题。这些值不会显示。

DataTable中被定义为:

<h:dataTable 
    id="calDetails" rowClasses="oddrow,evenrow" 
    headerClass="thHeading" var="car" 
    value="#{cardetails.allinfo}"> 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText id="lblCode" value="Code"></h:outputText> 
     </f:facet> 
     <h:inputHidden value="#{car.code}"></h:inputHidden> 
     <h:outputText id="carcodeid" 
      value="#{car.code}"></h:outputText> 
    </h:column> 
    <h:column> 
     <f:facet name="header"> 
      <h:outputText id="lblCode" value="Sold"></h:outputText> 
     </f:facet> 
     <h:inputHidden value="#{car.sales}"></h:inputHidden> 
     <h:outputText id="carsalesid" 
      value="#{car.sales}"></h:outputText> 
    </h:column> 
</h:dataTable> 

我有二传手和cardetails.allinfo getter和我知道什么时候document.forms[0].submit()被称为cardetails.allinfo因为使用

<h:outputText value="#{cardetails.allinfo eq null}" /> 

因为我测试了这回不为空假。我已经主演了好几个小时,看不到我的错。将不胜感激任何输入。谢谢

显然这个列表只是空的。一个更好的调试是

<h:outputText value="#{not empty cardetails.allinfo}" /> 

这将显示true每当allinfonull不是空的。你也可以做

<h:outputText value="#{cardetails.allinfo}" /> 

看到明文阅读所有列表项由ArrayList#toString()表示。如果你看到[]那么它确实是空的。否则,如果您看到[[email protected],[email protected]],那么它有2个Car项目(假设您没有覆盖它的toString()方法来返回更多人类可读的字符串表示法,如许多初学者所做的;))。

如果列表为空,则需要从数据库中调试并修复列表加载逻辑。

+0

感谢您的回复。我尝试了你的建议,并把''这样打印出真正的所有内容,以及'',它打印出一些'[com.example.Car @ 1234,com.example.Car @ xxxx]',并且我还放入了'它正确地打印第一个代码,所以包含所有值的ArrayList是好的。但是当在'h:datatable'中没有显示数据! – ke3pup

+0

我也尝试在第一个'h:column'下面放置'',删除所有其他列,看看它是否会显示而且什么也没有。有什么建议么? – ke3pup

+0

即使我把一些虚拟值如'小时:的outputText> 的 h:outputText> h:dataTable>'我在列下看不到TEST!:( – ke3pup