从Managed Beans JSF2.0中的List中提取值的问题

时间:2012-07-23 11:30:22

标签: jsf-2 primefaces

我一直在尝试在JSF 2.0的输入文本框中显示列表中的一些值。该值未显示。下面是我试图运行的代码

<h:inputText id="targetDaysValueID" value="#{demandBean.filterSelectionVOList.targetDays}" required="false" style="height:22px;width:155px;float: right"></h:inputText>

以下是我尝试在xhtml页面中运行包含上述代码的页面时收到的错误消息。

ava.lang.NumberFormatException: For input string: "targetDays"
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at javax.el.ListELResolver.coerce(ListELResolver.java:166)
at javax.el.ListELResolver.getValue(ListELResolver.java:51)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIOutput.getValue(UIOutput.java:169)
at com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getValue(HtmlBasicInputRenderer.java:205)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.getCurrentValue(HtmlBasicRenderer.java:355)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:164)

代码在数据表中工作正常,我将列表分配给数据表&amp;为我创建一个变量,当我使用我想要显示的字段名的变量时,同样的工作正常。但是当我尝试显示值=“#{demandBean.filterSelectionVOList.targetDays}”

时,它不起作用

请协助。提前致谢。

1 个答案:

答案 0 :(得分:2)

问题是#{demandBean.filterSelectionVOList}解析为列表。 h:inputtext值不能是集合。

如果filterSelectionVOList不为空,请尝试例如:

#{demandBean.filterSelectionVOList.get(0).targetDays}

编辑:

要显示集合中的所有数据,您可以通过ui:repeat包装输出组件:

<ui:repeat var="element" value="#{demandBean.filterSelectionVOList}">
    <h:inputText value="#{element.targetDays}" /> 
</ui:repeat>

还添加了一个合适的命名空间定义:

xmlns:ui="http://java.sun.com/jsf/facelets"

如果这更适合您,您还可以使用h:dataTable显示元素。