java - <c :set var ="s" value ="class=\"selected\"" scope ="request"/> sets unexpected String in jSTL

标签 java jsp jstl

我的 JSP 页面中有一些链接,我想将所选链接设为粗体。我的 CSS 为:

.selected { font-weight: bold; }

我的 JSP 代码是:

<li <c:choose>
    <c:when test="${subject.subjectId == param.subj_id}">
    <c:set var="s" value="class=\"selected\"" scope="request"/> <!-- Here I'm setting class=selected
    <c:out value="${s}"/>
    </c:when>
</c:choose>><a href='/super-context/view-controller?action=view-content&subj_id=
    <c:out value="${subject.subjectId}"/>'>
    <c:out value="${subject.subjectName}" />
    </a></li>

但是上面的代码不起作用,当我转到页面源时,我看到下面的行

<c:out value="${s}"/>

打印:

<li class=&#034;selected&#034;>

请告诉如何获取此内容:

<li class="selected">

最佳答案

默认情况下,escapeXml是真的,并且 <c:out>标签因此转义了 HTML 如果你不想转义,你可以简单地使用

${s}

而不是

<c:out value="${s}"/>

不需要<c:out>就你的情况而言。以同样的方式对所有 <c:out> 进行操作标签。

<小时/>

c:out转义 HTML 字符,以便您可以避免跨站点脚本编写

有关更多信息,请查看以下帖子:

关于java - <c :set var ="s" value ="class=\"selected\"" scope ="request"/> sets unexpected String in jSTL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23693124/

相关文章:

java - 使用 servlet 映射在 JSP 项目中隐藏 .jsp 扩展名

java - 如何从动态创建的HTML表格中获取特定行的单元格数据?

java - Java 8 接口(interface)中静态方法的用途是什么?

java - 如何使用 ProcessBuilder 在 Java、MacOS 中运行 ffmpeg 命令

java - Maven 使用不同的依赖项创建相同的项目

java - 如何将外部页面添加到 Java 代码文档中?

java - 如何从 Servlet 重定向到 JSP 文件

java - 如何在 Struts 2 中处理表单上的索引属性按钮

jsf - 我应该在 JSF 2 xhtml 页面中使用 JSTL 吗?

javascript - 访问查询参数的方法 JSP, JSTL, Javascript