2014-10-17 66 views
0

根据我的支持bean中的变量状态,我必须更改primefaces对话框的头字符串。的条件将是以下的(伪代码):单个条件结果的多个表达式

#{backingBean.editing ? resourceBundle.edit_string resourceBundle.item.id : msg.add_string} 

和短片断例如:

<p:dialog id="dokDialog" header="#{backingBean.editing ? resourceBundle.edit_string resourceBundle.item.id : msg.add_string}" ...> 
    <!-- content --> 
</p:dialog>   

在这个例子中我想显示根据#{backingBean.editing}布尔值或者值#{msg.edit_string} #{resourceBundle.item.id}#{msg.add_string}

我想要做的是在标题中显示Editing Item 01New Item

而且我得到以下exeption,因为我有两个表达式(resourceBundle.edit_string resourceBundle.item.id)为一个结果:

Caused by: org.apache.el.parser.ParseException: Encountered " <IDENTIFIER> 

谢谢!

+1

你试试这个'#{backingBean.editing? resourceBundle.edit_string:msg.add_string}'? – 2014-10-17 05:03:33

+0

你可以用同样的方法在内部表达式中添加'#{}'吗? – 2014-10-17 05:41:46

+0

是的,如果我为每个条件结果都有一个表达式,那么这个方法就行得通。但我有两个第一个结果'resourceBundle.edit_string resourceBundle.item.id' – danizmax 2014-10-17 05:44:12

回答

1

resourceBundle.edit_string resourceBundle.item.id - 这是一个错误的表达。您需要连接

如果您正在使用EL相应版本String.concat可以帮助:resourceBundle.edit_string.concat(' ').concat(resourceBundle.item.id)

相关问题