我的index.xhtml
看起来像
<p:selectOneMenu value="#{tBean.selectedChartType}"
converter="entityConverter">
<f:selectItems value="#{tBean.chartTypes}" var="chart"
itemLabel="#{chart}" />
</p:selectOneMenu>
这将显示来自托管bean的ENUM列表
private List<ChartType> chartTypes = Arrays.asList(ChartType.values());
My Enum
public enum ChartType {
Line("line"), Spiral_Line("spline"), Area("area"), Spiral_Area("areaspline");
private String code;
private ChartType(String code) {
this.code = code;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
}
现在,当我在浏览器上运行此.jsf时,有时会抛出错误:
XML Parsing Error: undefined entity
Location: http://xxxx/index.sf
Line Number 54, Column 733:
当我查看我找到的源代码时
我猜是造成这个错误。
我正在使用JSF 2.2.0
和Primefaces 3.5
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
在faces-config.xml
<converter>
<converter-for-class>java.lang.Enum</converter-for-class>
<converter-class>javax.faces.convert.EnumConverter</converter-class>
</converter>
页
<p:selectOneMenu value="#{tBean.selectedChartType}">
<f:selectItems value="#{tBean.chartTypes}" var="chart" itemLabel="#{chart}" />
</p:selectOneMenu>
答案 1 :(得分:1)
帮助提问者有点晚了,但也许可以帮助某人:我遇到了同样的错误,我唯一可以解决的问题是将属性contentType="text/html"
添加到我的<f:view>
,如
<f:view contentType="text/html">
...
<p:selectOneMenu>
<f:selectItem itemLabel="test" itemValue="test"/>
</p:selectOneMenu>
...
</f:view>
afaik会发生这种情况,因为p:selectOneMenu
呈现
且此字符不是xml实体。由于我的页面使用DOCTYPE XHTML 1.0 Transitional
,因此会导致错误发生。
HTH。