JSF управляемое свойство для многозначных значений - PullRequest
1 голос
/ 09 ноября 2011

Как предложил BalusC в качестве ответа на этот вопрос , я хочу создать управляемое свойство, подобное этому:

@ManagedProperty("#{paramValues.freetext}")
private String[] ftValues;

public String[] getFtValues(){ 
    return ftValues;
}

public void setFtValues(String[] values){
    ftValues = values;
}

В моем проекте все объявления и настройки управляемого бина выполнялись в файлеface-config.xml. Размещение аннотации в коде, как предложено, не дает мне никакого результата. ftValues ​​всегда равно нулю, даже если у меня есть один или несколько <input name="freetext"> Возможно ли, что аннотация не принимается во внимание, потому что основной метод конфигурации использует файл XML?

Как я могу поместить объявление ManagedProperty в faces-config.xml? Я попытался добавить

<managed-property>
    <property-name>ftValues</property-name>
    <property-class>java.lang.String[]</property-class>
    <value>#{paramValues.freetext}</value>
</managed-property>

в соответствующем разделе управляемого компонента, но он вылетает с этой ошибкой

Бин или класс свойств java.lang.String [] для управляемого бина myBean не найден.

1 Ответ

2 голосов
/ 09 ноября 2011

Действительно, аннотации игнорируются всякий раз, когда вы объявляете компонент в faces-config.xml. Если удаление bean-компонента из faces-config.xml по какой-то непонятной причине на самом деле не вариант, вам нужно удалить <property-class>, чтобы решить проблему. JSF может сам прекрасно это понять.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...