我有JSF 2.2,PrimeFaces 5.0 Web应用程序。
在我的页面上,我需要有条件地设置<ui:param/>
。问题是标准的三元运算符是不够的,因为我有两个以上的选项可供选择。此单页用作两种类型用户的编辑和创建页面:普通用户和医生。
以下是我的尝试:
<ui:param name="edit_title"
value="#{empty dto.id ?
(bean.isPhysician ? msg.physicianNewTitle : msg.userNewTitle) :
(bean.isPhysician ? msg.physicianEditTitle : msg.userEditTitle)}" />
当dto.id
为空且bean.isPhysician
为假且我找不到问题或更好的解决方案时,结果显示错误的标题。试图像条件here那样有条件地设置它,但是由于某种原因它不起作用。
有谁知道如何解决这种麻烦?
每一个有用的答案都受到高度赞赏和评价。
谢谢。
答案 0 :(得分:18)
好吧,伙计们,我发现了导致错误行为的原因,它与嵌套的三元运算符无关。这是对isPhysician变量的错误计算。
因此,如果您需要在视图中选择2个以上的条件 - 请尝试这样做:
<ui:param name="edit_title"
value="#{empty dto.id ?
(bean.isPhysician ? msg.physicianNewTitle : msg.userNewTitle) :
(bean.isPhysician ? msg.physicianEditTitle : msg.userEditTitle)}" />
或者只是将您的逻辑移动到bean。 希望这有助于某人。
干杯。