0

我正在尝试为链接创建一个条件,如果长度不 = 0,则显示描述,但出现语法错误,代码为:

<c:if test="#{fn:length(#{pqfn:format('ACTUAL_LINK')}) != 0}">
    <h:outputLink id="link1" value="#{pqfn:format('LINK_DESCRIPTION')}"/>
</c:if>

我收到的错误是:

Caused by: org.apache.el.parser.ParseException: Encountered " <ILLEGAL_CHARACTER> "{ "" at line 1, column 14.
Was expecting one of:
    "." ...
    ")" ...
    "[" ...
    "," ...
    ">" ...
    "gt" ...
    "<" ...
    "lt" ...
    ">=" ...
    "ge" ...
    "<=" ...
    "le" ...
    "==" ...
    "eq" ...
    "!=" ...
    "ne" ...
    "&&" ...
    "and" ...
    "||" ...
    "or" ...
    "*" ...
    "+" ...
    "-" ...
    "/" ...
    "div" ...
    "%" ...
    "mod" ...
4

2 回答 2

3

您不能嵌套 EL 表达式,如#{... #{... ...} ...}. 这没有任何意义。您应该将 EL 表达式#{... ...}视为一个大范围,其中各种 EL 范围变量和 EL 函数可以相互交互。

正确的语法是:

<c:if test="#{fn:length(pqfn:format('ACTUAL_LINK')) != 0}">

您得到的特定异常被抛出,因为 EL 解析器意外地遇到了{当时预期的列出的字符序列之一。

于 2013-09-23T15:13:44.557 回答
2

您似乎将一个 EL 表达式嵌套在另一个表达式中......这是行不通的:

#{fn:length(#{pqfn:format('ACTUAL_LINK')}) != 0}
            ^
      can't do this
于 2013-09-23T15:13:25.177 回答