【问题标题】:Unterminated C:out Tag on Ternary Operator三元运算符上的未终止 C:out 标记
【发布时间】:2010-08-17 03:51:26
【问题描述】:

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

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

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

【问题讨论】:

    标签: jsp servlets jstl el


    【解决方案1】:

    值中的第一个双引号过早地破坏了该值。您应该只使用单引号来表示 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"' : ''}>
    

    【讨论】:

    • 谢谢 BalusC... 顺便说一下,我想我之前读过一篇关于 Streaming Servlet 的文章,我忘记了链接,但我不确定您是否是那个作者... 很好的链接!我从中学到了很多..
    • 可能是thisthis?不客气:)
    猜你喜欢
    • 2013-05-17
    • 2012-02-11
    • 2017-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-06
    • 2021-10-06
    相关资源
    最近更新 更多