2012-12-28 73 views
0

我想創建selectOneMenu組件與面板如陳列櫃here(最後一個名單「內容與過濾器」)。Primefaces和複雜的視覺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值,而我想要的標誌圖像和語言環境。

當我設置selectItems標籤itemLabel屬性foo我只有foo值,所以看來我p:column從不使用/讀取。

哪裏可以是我的錯誤,請嗎?

回答

0

好吧,我在primefaces論壇上找到了解決方案。

實際上,當迭代器是String類型的列呈現不會呈現。

所以我必須創建自定義對象並在其中封裝我的String

Discussion here

相關問題