如何从渲染的h:outputText向方法传递参数?

我正在显示来自sql查询的数据表,并希望根据此sql查询中的一个字段值呈现一段代码。

查看:records.xthml

#{messages['table.header.id']} #{messages['table.header.name']} #{messages['table.header.date.added']}  
<h:outputText value="#{listedRecord.id} <h:outputText value="#{listedRecord.name}

Controller:ViewListBean.java

 public boolean currentRecord(Long recordId) { Long maxRecordId = 10; if (recordId <= maxRecordId) { return true; } else { return false; } } 

有问题的两行records.xhtml代码是:

   

我希望能够在渲染的检查中传递一个参数并返回一个布尔值来渲染或不渲染。 假设在这个sql查询中返回了20条记录。 如果当前行的recordId值小于或等于10,则返回true,并显示listedRecord.dateAdded字段。 否则它将返回false并显示“已Archived ”一词。

这是将参数从JSF生成的XHTML页面传递给控制bean的方法的正确方法吗?

有更好或更有效的方法吗?

你只有一个错误: ! 必须进入EL表达式。

即这是无效的:

 rendered="!#{viewRecordBean.currentRecord(listedRecord.id)}" 

它应该是:

 rendered="#{!viewRecordBean.currentRecord(listedRecord.id)}" 

假设您的环境支持EL 2.2,那么它看起来应该可以正常工作。 我只使用因为它消除了HTML样板。

Interesting Posts