未终止的C:三元运算符上的标记

时间:2010-08-17 03:51:27

标签: jsp servlets jstl el

我在会话中设置了一个会话范围对象,我想使用JSTL三元运算符在我的一个按钮中添加一个禁用属性。

getPermission是当前登录用户的权限映射,但我不确定为什么在进入此JSP时,我在JSP中遇到错误unterminated c:out tag

<button type="button"  id="addButton" 
    <c:out value="${empty sessionScope.voUserInfo.getPermission.ADD_ITEM ? "disabled='disabled'" : ''}"/> >
    ADD
</button>

1 个答案:

答案 0 :(得分:7)

价值中的第一个双引号是太早破坏价值。您应该仅使用单引号来表示EL中的字符串,而不是双引号。您应该仅使用双引号来表示HTML属性值。

<button id="add" <c:out value="${empty var ? 'disabled="disabled"' : ''}"/>>

(请不要注意Stackoverflow代码语法荧光笔,它无法正确识别taglibs / EL,以上是合法有效的)

或者,当您使用JSP 2.0或更新版本时,只要没有XSS风险,您甚至可以离开c:out(由于您正在打印服务器,因此不是这种情况 - 控制值)。

<button id="add" ${empty var ? 'disabled="disabled"' : ''}>