2013-09-23 3 views
0

Я пытаюсь создать условие для ссылки, где, если длина не = 0, то показать описание, но я получаю ошибку синтаксиса кода:EL синтаксическая ошибка на <c:if>

<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" ... 

ответ

3

Вы не можете вложить выражения EL, как в #{... #{... ...} ...}. Это не имеет никакого смысла. Вы должны увидеть выражение EL #{... ...} как одну большую область, в которой различные переменные с переменным EL и функции EL могут взаимодействовать друг с другом.

Правильный синтаксис:

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

Конкретное исключение вы получили брошен потому, что анализатор EL неожиданно обнаружил { в то время как один из перечисленных последовательностей символов, как ожидается, в этой точке.

2

Вы, кажется, гнездящихся одно выражение EL внутри другого ... что не будет работать:

#{fn:length(#{pqfn:format('ACTUAL_LINK')}) != 0} 
      ^
     can't do this 
Смежные вопросы