2010-11-29 36 views
0

當我嘗試在form:input標記內執行像<c:if ...>...</c:if>這樣的操作時,我的控制檯中出現錯誤,表明form:input尚未關閉。EL內部表單:輸入導致未關閉標記錯誤

有沒有人有一個想法,爲什麼會發生這種情況,以及最乾淨的解決方案? (可能是set var然後${result of c:if}

回答

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'}" /> 
+1

類似<形式:INPUT TYPE = 「文本」 ...的禁用= 「禁用」 /> – jack 2010-11-29 10:05:02

3

不能使用<c:if>這樣:

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

你的情況,你必須寫:

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

(注意固定在Spring相關的bug 3.0.1 https://jira.springframework.org/browse/SPR-6790