我有一个Tapestry应用程序以UTF-8的形式为其页面提供服务。也就是说,服务器响应有标题:在应用程序中为单个Tapestry 4页面设置ISO-8859-1编码,否则该应用程序完全是UTF-8
Content-type: text/html;charset=UTF-8
现在这个应用程序存在,应与ISO-8859-1编码送达单页内。也就是说,服务器响应应该有这个标头:
Content-type: text/html;charset=ISO-8859-1
如何做到这一点?我不想更改整个应用程序的默认编码。
基于谷歌搜索我曾尝试以下操作:
@Meta({ "org.apache.tapestry.output-encoding=ISO-8859-1",
"org.apache.tapestry.response-encoding=ISO-8859-1",
"org.apache.tapestry.template-encoding=ISO-8859-1",
"tapestry.response-encoding=ISO-8859-1"})
abstract class MyPage extends BasePage {
@Override
protected String getOutputEncoding() {
return "ISO-8859-1";
}
}
但无论是设置与@Meta注释或覆盖getOutputEncoding方法工作的价值。
我正在使用Tapestry 4.0.2。
编辑:我结束了这样做与Servlet过滤器与子类HttpServletResposeWrapper。包装器重写setContentType()以强制响应所需的编码。
嗯。这为* incoming *请求设置了编码。我需要改变传出响应的编码。我的Tapestry应用程序不是处理表单提交的应用程序。我的应用程序只提供表单页面。 – 2008-10-06 09:49:59