Как отобразить BitSet на faceconfig.xml - PullRequest
1 голос
/ 01 марта 2011

Я хочу отобразить этот боб в моем FaceSconfig.xml

public class VisualizationBean {

    private BitSet results;

    public BitSet getResults() {
        return results;
    }

    public void setResults(BitSet results) {
        this.results = results;
    }

}

Как я видел в некоторых статьях и некоторых примерах, можно инициализировать карты или другие поля, но я не могу понять, как инициализировать это поле. Я думаю, что-то похожее на

 <managed-bean>
        <managed-bean-name>visualizationBean</managed-bean-name>
        <managed-bean-class>path.bean.VisualizationBean</managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>
        <managed-property>
            <property-name>results</property-name>
            <map-entries>
                <map-entry>
                    <key>true</key>
                    <value>6</value>
                </map-entry>
                <map-entry>
                    <key>false</key>
                    <value>12</value>
                </map-entry>
                <map-entry>
                    <key>false</key>
                    <value>24</value>
                </map-entry>                
            </map-entries>
        </managed-property>        
    </managed-bean>

Но это не правильно. Любая помощь?? Заранее спасибо

1 Ответ

1 голос
/ 01 марта 2011

Вы не можете. BitSet не реализует Map, а JSF не предоставляет средств для предустановки других структур данных управляемых свойств, кроме List или Map.

У вас есть в основном 2 варианта:

  1. Вместо этого используйте Map<Object, Boolean> (обратите внимание, что вам нужно инвертировать ключи / значения в faces-config.xml; ключи должны быть уникальными!)

  2. Заполните BitSet самостоятельно во время (пост) построения bean-компонента на основе другого внешнего файла, например .properties.

...