最近在做一个在线文本编辑器项目,遇到一个问题:
我从后台得到了各个章节的信息,包括标题和内容,其中内容是以HTML格式的形式存储的.这些章节信息是以一个List返回的.在页面中的显示代码如下:
<c:forEach items="${pageControl.data}" var="newsSearch">
<div style="margin-top: 20px;">
<span>
<a href="newsShow.do?detail=1&id=<c:out value="${newsSearch.id}" />" ><c:out value="${newsSearch.title}" escapeXml="false" /></a><br />
<c:out value="${newsSearch.content}" /><br/>
<font color="green">http://127.0.0.1:8080/LuceneSys/newsShow.do?detail=1&id=<c:out value="${newsSearch.id}" /> <c:out value="${newsSearch.publishDate}" /></font>
</span>
<br />
</div>
</c:forEach>
这段代码是将List中的章节信息拼接成一篇文章.但是问题出来了,由于content中的内容是以HTML形式存储的,所以在页面显示的时候,会将一些HTML标签原封不动的显示出来.查看页面的源代码,发现这些标签已经被解析成了转义符.
为了解决这个问题,在<c:out>标签中有一个escapeXml属性,其默认值为true,即默认是要将HTML标签转化为转义字符,所以在页面中就显示出了HTML标签.
所以,很显然,只要将这个属性值改为flase就可以了.代码如下:
<c:forEach items="${pageControl.data}" var="newsSearch">
<div style="margin-top: 20px;">
<span>
<a href="newsShow.do?detail=1&id=<c:out value="${newsSearch.id}" />" ><c:out value="${newsSearch.title}" escapeXml="false" /></a><br />
<c:out escapeXml="false" value="${newsSearch.content}" /><br/>
<font color="green">http://127.0.0.1:8080/LuceneSys/newsShow.do?detail=1&id=<c:out value="${newsSearch.id}" /> <c:out value="${newsSearch.publishDate}" /></font>
</span>
<br />
</div>
</c:forEach>
分享到:
相关推荐
- **流程控制标签**:`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`,用于条件判断和多分支选择。 - **迭代标签**:`<c:forEach>`、`<c:forTokens>`,实现循环遍历。 - **URL操作标签**:`<c:import>`、`...
`<c:out>`有两个主要属性:`value`(必需,表示要显示的值)和`escapeXml`(可选,决定是否对特殊字符进行转义,默认为`true`)。 2. **XML processing库**:提供了处理XML文档的功能,通过`<x:parse>`、`<x:...
- `<c:out>`:此标签用于输出数据,相当于JSP中的`<%= %>`. 它的优点在于鼓励将业务逻辑与展示逻辑分离,提升代码可读性。`<c:out>`标签有`value`属性,用于指定要输出的值,可选的`escapeXml`属性用于控制是否进行...
- 输出Web域中的属性:`<c:out value="${test_session}" />` 6. `<c:out>`的`escapeXml`属性应用: - 例程8-4中,`<c:out>`没有设置`escapeXml`,导致HTML标签`<meta>`被直接输出,可能引发安全问题。 - 例程8-5...
主要包括`<c:out>`、`<c:set>`、`<c:remove>`、`<c:catch>`、`<c:if>`、`<c:choose>`、`<c:when>`、`<c:otherwise>`、`<c:forEach>`、`<c:forTokens>`、`<c:import>`、`<c:url>`和`<c:redirect>`等标签。这些标签...
- 将主体内容存储到对象属性:`<c:set target="target" property="propertyName">主体内容</c:set>` - **属性解释**: - `value`:存储的值。 - `var`:存储的变量名。 - `scope`:变量的范围,默认为page。 -...
`<c:out>` 标签用于在JSP页面中输出一个表达式的值。它有以下几个关键属性: - `value`:指定要输出的表达式,通常为EL表达式。 - `default`:如果`value`属性的表达式计算结果为null或空,将输出此属性指定的默认值...
- **`<c:out>`标签**:用于在JSP页面中输出数据。 - 属性: - `value`:必填项,表示要输出的数据,可以是常量或EL表达式。 - `default`:非必填,当`value`属性的值为`null`时输出的默认信息。 - `escapeXml`:...
5. `<c:out>`标签: 这个标签用于安全地输出值,可以防止XSS(跨站脚本攻击)。`value`属性指定要输出的对象,`escapeXml`决定是否转义XML特殊字符,默认为`true`。如果输出值为`null`,可以通过`default`属性设置...
<c:out value="value" [escapeXml="{true|false}"]>defaultValue</c:out> ``` - `value`属性:指定要输出的内容。 - `default`属性:当`value`为`null`时,输出的默认值。 - `escapeXml`属性:控制是否进行HTML...
这里`<c:catch>`标签中的`var`属性指定了一个变量名称,用于保存捕获到的异常信息。如果`<c:catch>`内部的代码抛出了异常,则该异常会被捕获,并存储到指定的变量中。 ##### 2. `<c:choose>` 标签 `<c:choose>`...
- 无本体内容时,`<c:out value="value" [escapeXml="{true|false}"] [default="defaultValue"] />`,`value`属性指定要显示的值,`default`属性用于设置当`value`为空时显示的默认值,`escapeXml`属性控制是否转义...
- 有本体内容:`<c:out value="value" [escapeXml="{true|false}"]> default value </c:out>` - 属性: - `value`:要显示的值。 - `default`:如果`value`为`null`时显示的默认值。 - `escapeXml`:是否转义XML...
- `<c:choose>`中只能包含`<c:when>`和`<c:otherwise>`标签。 - 每个`<c:choose>`中至少应有一个`<c:when>`,但`<c:otherwise>`是可选的。 - 所有`<c:when>`标签的条件是互斥的,只有一个会被执行。 - 如果所有`<c:...
`<c:catch>`标签用于捕获执行过程中的异常,并将其存储在一个变量中供后续处理。其结构如下: ```xml <c:catch [var="varName"]> 可能抛出异常的代码块 </c:catch> ``` `var`属性指定了用于存储异常信息的变量名,...
c:out标签的value属性值为null </c:out> ``` 当`value`属性值为null时,标签内部的默认文本将被输出。 3. **设置`escapeXml`属性值为true** ```jsp <c:out value="${requestNulltest}" escapeXml="true"> &...
<c:out value="${user.name}" default="Guest" escapeXml="true" /> ``` ##### 2. <c:set> - **功能**:设置变量值或JavaBean对象的属性。 - **属性**: - `value`:要设置的值。 - `var`:变量名。 - `scope`...
`<c:out>`和`<c:set>`是JSTL中非常实用的两个标签,它们帮助开发者更方便地处理数据输出和变量设置,提升了代码的可读性和安全性。在编写JSP页面时,使用这两个标签可以极大地简化代码,使JSP更加符合MVC模式,减少...
ArrayList<String> users = new ArrayList<>(); users.add("user1"); users.add("user2"); pageContext.setAttribute("users", users); <c:forEach items="${users}" var="user"> ${user} </c:forEach> ``` ...