2012-11-19 111 views
3

我有一个按钮,我想根据函数返回true还是false来呈现。JSF:将字符串参数传递给布尔函数

的HTML:

<p:commandButton type="button" rendered="#{myBean.checkPermission(1)}" value="Create" /> 

和支撑豆:

public boolean checkPermission(String actionKey) { 
... 
} 

的问题是,当我打电话的checkPermission用数字参数就像

#{myBean.checkPermission(1)}

它工作正常,但我传递一个字符串作为参数,即

#{myBean.checkPermission(ABC)}

,我得到过一个空字符串。任何想法为什么?

回答

7

您没有通过String,而是通过EL无法理解的ABC变量,您的方法将获得null值(感谢BalusC对我有所帮助)。您应该加上引号(')来告诉框架你传递一个String

<p:commandButton type="button" rendered="#{myBean.checkPermission('ABC')}" 
    value="Create" /> 
+5

这是更具体的EL这并没有理解。变量'#{ABC}'在EL范围中不存在并且计算为'null'。这超出了JSF的控制范围。 – BalusC

+1

@BalusC谢谢:)。 –