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
每当allinfo
不null
和不是空的。你也可以做
<h:outputText value="#{cardetails.allinfo}" />
看到明文阅读所有列表项由ArrayList#toString()
表示。如果你看到[]
那么它确实是空的。否则,如果您看到[[email protected],[email protected]]
,那么它有2个Car
项目(假设您没有覆盖它的toString()
方法来返回更多人类可读的字符串表示法,如许多初学者所做的;))。
如果列表为空,则需要从数据库中调试并修复列表加载逻辑。
感谢您的回复。我尝试了你的建议,并把' '这样打印出真正的所有内容,以及' ',它打印出一些'[com.example.Car @ 1234,com.example.Car @ xxxx]',并且我还放入了'它正确地打印第一个代码,所以包含所有值的ArrayList是好的。但是当在'h:datatable'中没有显示数据! –
ke3pup
我也尝试在第一个'h:column'下面放置' ',删除所有其他列,看看它是否会显示而且什么也没有。有什么建议么? –
ke3pup
即使我把一些虚拟值如' 的小时:的outputText> 的 h:outputText> h:dataTable>'我在列下看不到TEST!:( –
ke3pup