0

Java String mailContent を次のように持っています

<p><span style="background-color: #ff6600; font-family: arial black,avant garde; font-size: large;">Testing Correct Formatting</span></p>

ブラウザに送信する前に、jsp のメソッド formatString および formatParagraph でエンコードします。Jspコードは以下です

<td valign="center" >
<%=StringFormat.formatParagraph(StringFormat.formatString(mailContent,StringFormat.ALL))%>
 </td>

上記のコード スニペットを使用すると、html タグ付きのテキストとしてではなく、プレーン テキスト (mailContent の値として) として単純に印刷されます。そのため、フォント サイズ、背景色、フォント ファミリなどの書式設定された HTML コンテンツが表示されません。以下のコードを使用すると、現在テキストをエンコードしていないため、書式設定された HTML コンテンツが表示されます。

 <td valign="center" >
 <%=mailContent%>
 </td>

エンコーディングを削除したくないので、ブラウザにエンコードされたコンテンツをhtmlタグとして解釈させるにはどうすればよいですか?

詳細については、ブラウザ側でソースを表示すると、エンコードされているため、以下が表示されます

 &lt;p&gt;&lt;span style=&quot;background-color: #ff6600; font-family: arial black,avant garde; font-size: large;&quot;&gt;Testing Correct Formatting&lt;/span&gt;&lt;/p&gt;<br/><br/>
4

2 に答える 2

1

ブラウザは、 という名前の HTTP ヘッダーを使用してコンテンツ タイプを決定しますContent-Type。content type value を送信する必要がありますtext/html。現在 を送信しているtext/plainようですので、ブラウザはコンテンツをプレーンテキストとして扱います。

詳しくはこちらをご覧ください。

于 2012-05-08T09:38:35.473 に答える
0
<%@ page contentType="text/html; charset=iso-8859-1" language="java"  %>



<%
request.setAttribute("Att","<p><span style=\"background-color: #ff6600; font-family: arial black,avant garde; font-size: large;\">Testing Correct Formatting</span></p>");
%>
<%= request.getAttribute("Att")%>

In place of value in setAttrbiute you can pass your string object.
于 2012-05-08T10:05:09.203 に答える