假设name
包含非ascii字符,当我使用<s:property value="name" />
时,Struts会自动将这些字符转换为仅
之类的内容。
这是完全没必要的,因为我宣布
<%@ 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!我想在某处设置一个属性应该可以解决问题,但在哪里?我搜索了很长时间,找不到解决方案。
答案 0 :(得分:3)
这是<s:property/>
标记特有的内容。您可以使用<c:out/>
代替,它将转义XML字符而不更改Unicode字符。试试这个:
<c:out value="${action.name}"/>
这是JSTL等同于<s:property value="name"/>
。