阻止Strut2自动将非ascii字符转换为unicode值

时间:2011-09-01 16:58:08

标签: jsp encoding struts2

假设name包含非ascii字符,当我使用<s:property value="name" />时,Struts会自动将这些字符转换为&#20165;之类的内容。

这是完全没必要的,因为我宣布

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>`

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

struts.i18n.encoding=UTF-8

它使得html源在客户端完全不可读,同时极大地增加了页面的大小。

我知道<s:property value="name" escapeHtml="false" />可以解决我的问题。但那不是重点。当我根本不想要escapeHtml时,可以使用此选项。我想要的是在单独留下UTF-8字符时正确地逃避Html!我想在某处设置一个属性应该可以解决问题,但在哪里?我搜索了很长时间,找不到解决方案。

1 个答案:

答案 0 :(得分:3)

这是<s:property/>标记特有的内容。您可以使用<c:out/>代替,它将转义XML字符而不更改Unicode字符。试试这个:

<c:out value="${action.name}"/>

这是JSTL等同于<s:property value="name"/>