<c:if>上的 EL 语法错误



>我正在尝试为链接创建一个条件,如果长度不是 = 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" ...

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

正确的语法是:

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

您得到的特定异常被抛出,因为 EL 分析器意外遇到{,而此时需要列出的字符序列之一。

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

#{fn:length(#{pqfn:format('ACTUAL_LINK')}) != 0}
            ^
      can't do this

相关内容

最新更新