相信很多使用Tapestry5的人和我一样,碰到中文编码的问题。
在网上找了很久,终于在tapestry项目的邮件列表里找到了一个比较好的解决方案,特拿出来分享。
首先将你的页面文件以UTF-8编码方式保存。
然后在AppModule类加入以下方法:
public static PageResponseRenderer decoratePageResponseRenderer(
@InjectService("PageMarkupRenderer")
final PageMarkupRenderer markupRenderer,
@InjectService("MarkupWriterFactory")
final MarkupWriterFactory markupWriterFactory, final Object delegate)
{
return new PageResponseRenderer()
{
public void renderPageResponse(Page page, Response response) throws IOException
{
MarkupWriter writer = markupWriterFactory.newMarkupWriter();
markupRenderer.renderPageMarkup(page, writer);
PrintWriter pw = response.getPrintWriter("text/html; charset=UTF-8");
writer.toMarkup(pw);
pw.flush();
}
};
}
OK。现在就可以在你的页面文件中包含中文了。