2013-07-26 2 views
0

Мои index.xhtml выглядитJSF/Primefaces выбрать один проблемы меню вызывает

<p:selectOneMenu value="#{tBean.selectedChartType}" 
        converter="entityConverter"> 
        <f:selectItems value="#{tBean.chartTypes}" var="chart" 
         itemLabel="#{chart}" /> 
</p:selectOneMenu> 

Это представляет список ENUM из моего управляемого компонента

private List<ChartType> chartTypes = Arrays.asList(ChartType.values()); 

Мой 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: 

Когда я смотрю на исходный код, который я нашел

&nbsp; 

, который вызывает эту ошибку, я думаю.

Я использую JSF 2.2.0 и Primefaces 3.5

может кто-то пожалуйста, помогите мне с этим вопросом?

+0

Возможный дубликат [JSF и тип безопасности] (http://stackoverflow.com/questions/16433250/jsf-and-type-safety) – skuntsel

+0

@skuntsel Как это возможно дублировать? – Makky

+0

Это точный голос, сделанный по ошибке, но я, к сожалению, не могу его отменить. – skuntsel

ответ

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 отображает &nbsp;, и этот символ не является объектом xml. Поскольку моя страница использует DOCTYPE XHTML 1.0 Transitional, это приводит к возникновению ошибки.

HTH.

+0

Это было исправление, которое я вложил, чтобы заставить его работать !! 1 – Makky

1

Try в следующей конфигурации в 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> 
+0

Считаете ли вы, что эта ошибка вызвана конвертером? – Makky

+0

Как ваша страница, это причина конвертера – CycDemo

+0

Я отдам его, но я не думаю, что нам нужно зарегистрировать этот enumconverter, поскольку JSF имеет встроенный конвертер Alrady для перечисления. Я думаю, что моя ошибка заключалась в том, чтобы использовать любой конвертер для ENUM. Выберите одно меню. – Makky

Смежные вопросы