如何解決JSF的數據表java.lang.NumberFormatException:對於輸入字符串,在波紋管我的代碼: 我有SelectItemDTO:JSF datatTable java.lang.NumberFormatException:對於輸入字符串:
public class SelectItemDTO implements Serializable {
private static final long serialVersionUID = 1L;
private Object value;
private String label;
public SelectItemDTO() {
}
public SelectItemDTO(Object value, String label) {
this.value = value;
this.label = label;
}
public Object getValue() {
return value;
}
public void setValue(Object value) {
this.value = value;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}
在
我dialog.xhtml我有:
<p:dialog id="#{cc.attrs.widgetVar}" widgetVar="#{cc.attrs.widgetVar}" resizable="true" responsive="true" modal="true" appendTo="@(body)" height="580" width="850" dynamic="true">
<h:form>
<p:fieldset>
<p:panel header="Ajout d'une nouvelle règle">
#{cc.attrs.value.parametres}
</p:panel>
</p:fieldset>
</h:form>
</p:dialog>
當我運行我的應用程序有輸出dialog.xhtml [[email protected],[email protected] ]
現在,當我的對話框更改爲:
<p:dialog id="#{cc.attrs.widgetVar}" widgetVar="#{cc.attrs.widgetVar}" resizable="true" responsive="true" modal="true" appendTo="@(body)" height="580" width="850" dynamic="true">
<h:form>
<p:fieldset>
<p:panel header="Ajout d'une nouvelle règle">
<p:dataTable value="#{cc.attrs.value.parametres}" var="par" emptyMessage="#{msg['datatable.msg.empty']}">
<p:column headerText="Param">
<h:outputText value="#{par.label}" />
</p:column>
<p:column headerText="Value">
<h:inputText value="#{par.value}" />
</p:column>
</p:dataTable>
</p:panel>
</p:fieldset>
</h:form>
</p:dialog>
我有一個例外:
java.lang.NumberFormatException: For input string: "parametres"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at java.lang.Integer.parseInt(Integer.java:615)
at javax.el.ListELResolver.coerce(ListELResolver.java:157)
at javax.el.ListELResolver.getValue(ListELResolver.java:70)
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:169)
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
at com.sun.faces.facelets.el.ContextualCompositeValueExpression.getValue(ContextualCompositeValueExpression.java:158)
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.UIData.getValue(UIData.java:732)
at org.primefaces.component.api.UIData.getDataModel(UIData.java:764)
at org.primefaces.component.api.UIData.setRowModel(UIData.java:571)
at org.primefaces.component.api.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:564)
at org.primefaces.component.api.UIData.setRowIndex(UIData.java:473)
at javax.faces.component.UIData.invokeOnComponent(UIData.java:1041)
at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:1503)
at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:718)
與此代碼我得到預期的結果,但不與數據表:
<p:panelGrid class="ui-noborder" columns="2" cellpadding="5">
<f:facet name="header">
<p:row>
<p:column headerText="Paramètre" />
<p:column headerText="Valeur" />
</p:row>
</f:facet>
<c:forEach items="#{cc.attrs.value.parametres}" var="param">
<p:row>
<p:column>
<p:outputLabel value="#{param.label}" />
</p:column>
<p:column>
<p:inputText value="#{param.value}" />
</p:column>
</p:row>
</c:forEach>
</p:panelGrid>