當我從MyBean獲取一些文本,例如,<p>Hello world</p>
並將其包含到jsp中通過jsp:getProperty
生成的html頁面中它將是<p>Hello world</p>
我可以猜測tomcat的團隊是出於安全原因這樣做了但是這不是我想得到的行爲。Tomcat(6)在將bean包含到resultig html之前從bean中轉義文本
問:如何獲得所需的行爲?
UPD:
@喬恩HORSTMANN
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<jsp:useBean id="xs" class="bean.XS" scope="application"></jsp:useBean>
<html>
<head><title>Test</title></head>
<body>
<c:out value="${xs.yoba}" escapeXml="true"/> <br>
<c:out value="${xs.yoba}" escapeXml="false"/> <br>
<c:out value="<p>HELLO WORLD</p>" escapeXml="true"/> <br>
<c:out value="<p>HELLO WORLD</p>" escapeXml="false"/>
</body>
</html>
消氣樂趣:
public String getYoba(){
return "<p>HELLO WORLD</p>" ;
}
生成的HTML:
<html>
<head><title>Test</title></head>
<body>
&lt;p&gt;Р「РѕРґ выпуска: 20 июля 2010&lt;/p&gt; <br>
<p>Р「РѕРґ выпуска: 20 июля 2010</p> <br>
&lt;p&gt;HELLO WORLD&lt;/p&gt; <br>
<p>HELLO WORLD</p>
</body>
</html>
我想:
<html>
<head><title>Test</title></head>
<body>
<P>HELLO WORLD</P>
</body>
</html>
所以你的財產包含已經逃脫的HTML?在這種情況下,我不知道標準方式,您將不得不用您的java代碼中的替換替換轉義字符。 – 2010-07-21 14:35:40
是tomcat對每個其他servlet容器特有的行爲嗎? – Jeriho 2010-07-22 06:12:54