EL внутри формы: ввод вызывает ошибку закрытого тега - PullRequest
0 голосов
/ 29 ноября 2010

Когда я пытаюсь сделать что-то вроде <c:if ...>...</c:if> внутри тега form:input, в консоли появляется сообщение об ошибке, что form:input не был закрыт.

У кого-нибудь есть идея, почему это происходит, и самое чистое решение? (может быть set var, а затем ${result of c:if})

Ответы [ 2 ]

3 голосов
/ 29 ноября 2010

Вы не можете использовать <c:if> таким образом:

<form:input type="text" ... <c:if test="${empty bla}">disabled="disabled"</c:if>/>

В вашем случае вы должны написать:

<form:input type="text" ... disabled="${empty bla}" />

(Обратите внимание на связанную ошибку, исправленную в Spring 3.0.1 https://jira.springframework.org/browse/SPR-6790)

2 голосов
/ 29 ноября 2010

Теги JSP, в отличие от тегов HTML, имеют особое значение в синтаксисе JSP, поэтому нельзя использовать выражения EL в произвольных местах тегов JSP.Выражения EL могут использоваться только в их атрибутах, поэтому вам нужно что-то подобное (обратите внимание, что name и id не нужны, они выводятся из path):

<form:input path="x" title="x(dd/MM/yyyy)" maxlength="10" size="10" 
    class = "${(empty eee) ? 'date' : ''}" 
    disabled = "${(not empty ccc) ? 'true' : 'false'}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...