0

我一直试图在 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)

该代码在数据表中工作正常,我将列表分配给数据表并为其创建一个变量,当我使用带有我想要显示的字段名的变量时,同样工作正常。但是当我尝试显示 value="#{demandBean.filterSelectionVOList.targetDays}" 时不起作用

请协助。提前致谢。

4

1 回答 1

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如果这更适合您,您还可以使用显示元素。

于 2012-07-24T09:34:46.300 回答