T5 技巧 1:解决Form的提交乱码问题。

现在正在使用T5开发一个小项目。 因为现在T5还正处于发展中。 而且没有像T4一样有许多的文档。 和例子(Workbench, Vlib)。 所以我会把在这个开发中遇到的一些问题记录下来。


tapestry5.0.5现在默认支持UTF-8编码。 但是发现在form提交数据后。 数据变成了乱码。

解决方案是增加一个Filter。


    public RequestFilter buildUtf8Filter(
        @InjectService("RequestGlobals") final RequestGlobals requestGlobals)
    {
        return new RequestFilter()
        {
            public boolean service(Request request, Response response, RequestHandler handler)
                throws IOException
            {
                requestGlobals.getHTTPServletRequest().setCharacterEncoding("UTF-8");
                return handler.service(request, response);
            }
        };
    }


然后contribute给RequestHandler。

    public void contributeRequestHandler(OrderedConfiguration<RequestFilter> configuration,
            @InjectService("TimingFilter") final RequestFilter timingFilter,
            @InjectService("Utf8Filter") final RequestFilter utf8Filter)
    {
        configuration.add("Utf8Filter", utf8Filter); // handle UTF-8
        configuration.add("Timing", timingFilter);
    }


以上代码都是放在AppModule.java中。。

参考:http://wiki.apache.org/tapestry/Tapestry5Utf8Encoding

你可能感兴趣的:(apache,eclipse,mysql,IOC,tapestry)