EL内部形式:输入导致未封闭的标签错误

时间:2010-11-29 09:56:48

标签: java spring jsp spring-mvc

当我尝试在<c:if ...>...</c:if>标记内执行form:input之类的操作时,我在控制台中收到form:input尚未关闭的错误。

有谁知道为什么会这样,以及最干净的解决方案? (可能是set var然后是${result of c:if}

2 个答案:

答案 0 :(得分:3)

您不能以这种方式使用<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

答案 1 :(得分:2)

与HTML标记不同,JSP标记在JSP语法中具有特殊含义,因此您无法在JSP标记的任意位置使用EL表达式。 EL表达式只能在其属性中使用,因此您需要这样的内容(请注意,不需要nameid,它们是从path推断出来的):

<form:input path="x" title="x(dd/MM/yyyy)" maxlength="10" size="10" 
    class = "${(empty eee) ? 'date' : ''}" 
    disabled = "${(not empty ccc) ? 'true' : 'false'}" />