Java JSF:

Java JSF:,java,xhtml,ehcache,jsf-1.2,Java,Xhtml,Ehcache,Jsf 1.2,我有一个bean,有一个缓存和一个从中获取值的方法 public List<SelectItem> getSelectItemList(String key){ return cache.get(key).getValue(); } 我可以知道如何在JSF中获得这个列表吗 我试过了 <f:selectItems value="#{Bean.getSelectItemList(abc)}" /> 但它不起作用,因为它需要一个属性 注意:我使用JSF1.2,EHCa

我有一个bean,有一个缓存和一个从中获取值的方法

public List<SelectItem> getSelectItemList(String key){
 return cache.get(key).getValue();
}
我可以知道如何在JSF中获得这个列表吗

我试过了

 <f:selectItems value="#{Bean.getSelectItemList(abc)}" /> 
但它不起作用,因为它需要一个属性

注意:我使用JSF1.2,EHCache,JSF代码:

 <t:selectOneMenu id="testId" value="#{testBean.selectedItem}" >
      <f:selectItems value="#{testBean.selectItemList}" />
 </t:selectOneMenu>
管理Bean代码:

    private String selectedItem;    
    private List selectItemList;
public List<SelectItem> getselectItemList() {
        if(null == selectItemList || selectItemList.isEmpty()){
            selectUserList = new ArrayList<SelectItem>();
            selectItemList.add(new SelectItem(this.selectedItem, cache.get(this.selectedItem).getValue()));
        }
        return selectItemList;
    }

我不确定你的EL是否支持传递参数。假设是这样,您也需要使用{Bean.getSelectItemList'abc'}将abc作为字符串发送,但它不起作用。AFAIK这在JSF-1中是不可能的。也许您的EL库根本不支持传递参数。@传递参数与否在EL中不是JSF的问题,这取决于EL库。BalusC也解释了这一点我手头没有这个链接