如何使用java EL在jsf中基于列表大小呈现数据表?

时间:2010-06-23 23:20:41

标签: jsf

如何使用java EL基于jsf中的列表大小呈现数据表?

1 个答案:

答案 0 :(得分:14)

三种方式:

  1. 添加额外的吸气剂。

    public int getSearchListSize() {
        return searchList.size();
    }
    

    <h:dataTable rendered="#{bean.searchListSize > 2}">
    
  2. 使用JSTL fn:length()功能。如果尚未安装JSTL(只需在/WEB-INF/lib中删除jstl-1.2.jar)并在JSP顶部声明fn taglib,如下所示:

    <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
    

    并按如下方式使用:

    <h:dataTable rendered="#{fn:length(bean.searchList) > 2}">
    
  3. 使用JBoss EL(“增强型EL”)作为JSF EL实现。它向后兼容标准的JSF EL实现。在/WEB-INF/lib中删除jboss-el.jar并在web.xml中声明以下内容,假设您正在使用Mojarra JSF实现:

    <context-param>     
        <param-name>com.sun.faces.expressionFactory</param-name>
        <param-value>org.jboss.el.ExpressionFactoryImpl</param-value>   
    </context-param>
    

    这样您就可以直接访问非getter方法:

    <h:dataTable rendered="#{bean.searchList.size() > 2}">