【问题标题】:JSF: <f:selectItems value="#{Bean.method([abc])}" />JSF: <f:selectItems value="#{Bean.method([abc])}" />
【发布时间】:2013-02-18 03:17:45
【问题描述】:

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

public List<SelectItem> getSelectItemList(String key){
 return cache.get(key).getValue();
}

我可以知道如何在 JSF 中获取此列表吗?

我试过了..

 <f:selectItems value="#{Bean.getSelectItemList(abc)}" /> 

但它不起作用,因为它需要一个属性。

注意:我使用的是 JSF 1.2,EHCache

【问题讨论】:

  • 我不确定你的 EL 是否支持传递参数。假设确实如此,您需要使用 #{Bean.getSelectItemList('abc')}String 的形式发送 abc
  • 也这样做了,但是没有用。
  • AFAIK 这在 JSF-1.2 中是不可能的
  • 那你的EL库可能根本不支持传参。
  • @Thor 是否在 EL 中传递参数不是 JSF 问题,这取决于 EL 库。 BalusC 也解释了这一点(我手头没有链接)

标签: java xhtml ehcache jsf-1.2


【解决方案1】:

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;
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2011-07-11
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多