我正在尝试使用struts 2将字符串列表输出到jsp页面。模板文件是这样的:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<s:iterator value="vars">
<p><s:property /></p>
</s:iterator>
</body>
</html>
相应的java动作文件是:
public class TestAction extends ActionSupport {
private static final long serialVersionUID = 1L;
List<String> vars = null;
public List<String> getVars() { return vars; }
public void setVars(List<String> vars) { this.vars = vars; }
@Override
public String doExecute() throws Exception {
vars = new ArrayList<String>();
vars.add("Users");
vars.add("Organizações");
vars.add("Eventos");
vars.add("Locais");
return SUCCESS;
}
}
问题是,结果是:
Users
Organizações
Eventos
Locais
(源代码)
<p>Users</p>
<p>Organizações</p>
<p>Eventos</p>
<p>Locais</p>
我认为这意味着我收到的编码字符串不是UTF-8。关于如何解决这个问题的任何想法?
答案 0 :(得分:1)
这是非常晚的回复,但我想更新这个以帮助,一个坚持这个bug的人。在jsp中添加以下行以解决问题。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<s:property escapeHtml="false"/>
答案 1 :(得分:-1)
取决于您的struts 2版本
旧版:(在较新版本中不推荐使用)
<s:property escape="false"/>
更新:(不确定引入了哪个版本)
<s:property escapeHtml="false"/>