0

ここselectOneMenuのショーケースのようなパネルを持つコンポーネントを作成したい(「フィルター付きのコンテンツ」という名前の最後のリスト)。

私の目標は、フラグと関連するロケールを表示することです。

私のコードはこれです:

<p:selectOneMenu value="#{locale.selectedLanguage}" var="selected">
    <f:selectItems value="#{locale.languages}" var="language" itemValue="#{language}"/>
        <p:column>
            <p:graphicImage value="resources/images/flags/flag_#{selected}.png" width="40" height="50" />
        </p:column>
        <p:column>  
            #{selected}
        </p:column>
</p:selectOneMenu>

そして私のlocale豆:

@ManagedBean(name="locale")
@SessionScoped
public class LocaleBean {

private static Logger logger = Logger.getLogger(LocaleBean.class);

private String locale;

private List<String> languages;

private String selectedLanguage;

public LocaleBean() {
    super();

    languages = new ArrayList<String>();
    languages.add("fr");
    languages.add("en");
}

public String getLocale() {             
    return locale;
}

public void setLocale(String locale) {
    FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(locale));      
    this.locale = locale;
}

public List<String> getLanguages() {
    return languages;
}

public void setLanguages(List<String> languages) {
    this.languages = languages;
}

public String getSelectedLanguage() {
    return selectedLanguage;
}

public void setSelectedLanguage(String selectedLanguage) {
    this.selectedLanguage = selectedLanguage;
}

}

このコードでは、フラグの画像とロケールが必要なのに対し、値はselectOneMenu含まれています。fren

タグitemLabelの属性をに設定すると、値しかないので、使用/読み取りがないようです。selectItemsfoofoop:column

私のエラーはどこにありますか?

4

1 に答える 1

0

わかりましたので、primefacesフォーラムで解決策を見つけました。

実際には、 iterator がString列のタイプの場合 render はレンダリングされません。

そのため、カスタム オブジェクトを作成し、Stringその中にカプセル化する必要があります。

ディスカッションはこちら

于 2012-12-28T12:26:28.900 に答える