如何使用EL-Expression在dataTable(PF)上设置emptyMessage?

时间:2013-05-24 12:03:09

标签: jsf-2 primefaces el

我正在尝试设置dataTable的emptyMessage-Attribute,而我想访问支持bean的值 - 类似的东西(当然没有正确评估):

<p:dataTable emptyMessage="#{data.employeeHasNoAbsences ? '#{ivy.cms.co('/Labels/Test')}' :  #{ivy.cms.co('/Labels/Test2')}}"

如果不访问辅助bean,它将是:

<p:dataTable emptyMessage="#{data.employeeHasNoAbsences ? 'No' : 'Yes'}"

哪种方法正常。

首先有可能吗?

2 个答案:

答案 0 :(得分:1)

嵌套EL表达式是非法语法。您应该将#{}视为变量/字符串可以相互交互的一个大空间。

您最终希望进行此评估:

data.employeeHasNoAbsences ? ivy.cms.co('/Labels/Test') : ivy.cms.co('/Labels/Test2')

现在,只需将完全评估放在#{}

<p:dataTable emptyMessage="#{data.employeeHasNoAbsences ? ivy.cms.co('/Labels/Test') : ivy.cms.co('/Labels/Test2')}">

对于具体问题,

无关,我希望您不要以这种方式重新构建内置ResourceBundle工具。

答案 1 :(得分:1)

这个怎么样:

<p:dataTable emptyMessage="#{data.employeeHasNoAbsences ? ivy.cms.co('/Labels/Test') : ivy.cms.co('/Labels/Test2')}"