簡體   English   中英

Primefaces和復雜的視覺selectOneMenu

[英]Primefaces and complex visual selectOneMenu

我想使用此處的展示板(最后一個名為“帶過濾器的內容”的列表)創建帶有面板的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 bean:

@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值,而我想要標記圖像和語言環境。

當我將selectItems標簽的itemLabel屬性設置為foo我只有foo值,因此似乎從未使用過/讀取我的p:column

請問我的錯誤在哪里?

好的,所以我在primefaces論壇中找到了解決方案。

實際上,當迭代器為String類型時,不會渲染render列。

因此,我必須創建自定義對象並將String封裝在其中。

在這里討論

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM