在渲染属性中使用大于逻辑的表达式

时间:2011-08-22 09:42:47

标签: jsf

我有一个outputText字段,我在rendered属性中写了一个条件。条件是将字符串的长度与某个数值进行比较。

<h:outputText id="emailaddress" 
    value ="#{subsAlertsHelper.personEmail.substring(0,20)}"
    rendered="#{subsAlertsHelper.personEmail.length() >20}" />

如果我在==中使用!=rendered,则表示正常。但是对于greaterthan和lessthan来说,它没有给出输出。可能是什么原因?

2 个答案:

答案 0 :(得分:47)

您必须使用gtlt运营商。

从Sun / Oracle查看JavaServer Faces Expression Language Intro。正是运营商部分。

答案 1 :(得分:3)

rendered只接受EL表达。

subsAlertsHelper.personEmail.length()不正确。

在personEmail对象上,添加方法getLength(),返回长度

public int getLength(){ return this. length();}

修改:

rendered="#{subsAlertsHelper.personEmail.length >20}"