`
Linuxboy
  • 浏览: 76958 次
  • 来自: ...
社区版块
存档分类
最新评论

Tapestry5学习小结之六(CJK解决方案)

阅读更多

转自mail-lists Nick Westgate 。


经测试,可以使用中文的html模板,表单输入的中文可以正常显示,但保存到数据库的内容变为???。

Just add this to your AppModule:

   

java 代码
 
  1. //显示CJK(中文)页面  
  2.     public static PageResponseRenderer decoratePageResponseRenderer(  
  3.             @InjectService("PageMarkupRenderer")  
  4.             final PageMarkupRenderer markupRenderer,  
  5.             @InjectService("MarkupWriterFactory")  
  6.             final MarkupWriterFactory markupWriterFactory, final Object delegate) {  
  7.   
  8.         return new PageResponseRenderer() {  
  9.             public void renderPageResponse(Page page, Response response)  
  10.                     throws IOException {  
  11.                 MarkupWriter writer = markupWriterFactory.newMarkupWriter();  
  12.                 markupRenderer.renderPageMarkup(page, writer);  
  13.                 PrintWriter pw = response  
  14.                         .getPrintWriter("text/html; charset=GBK");  
  15.                 writer.toMarkup(pw);  
  16.                 pw.flush();  
  17.             }  
  18.         };  
  19.     }  
  20.   
  21.     // 表单输入的CJK(中文)支持  
  22.     public void contributeRequestHandler(  
  23.             OrderedConfiguration<RequestFilter> configuration,  
  24.             @InjectService("EncodingFilter")  
  25.             RequestFilter encodingFilter) {  
  26.         configuration.add("EncodingFilter", encodingFilter);  
  27.     }  
  28.   
  29.     public RequestFilter buildEncodingFilter(@InjectService("RequestGlobals")  
  30.     final RequestGlobals requestGlobals) {  
  31.         return new RequestFilter() {  
  32.             public boolean service(Request request, Response response,  
  33.                     RequestHandler handler) throws IOException {  
  34.   
  35.                 requestGlobals.getHTTPServletRequest().setCharacterEncoding(  
  36.                         "GBK");  
  37.                 return handler.service(request, response);  
  38.             }  
  39.         };  
  40.     }  

分享到:
评论
10 楼 Linuxboy 2009-01-04  
sun58224 写道

RequestGlobals, requestGlobals.getHTTPServletRequest(),要分别引入哪些包,前者用org.apache.tapestry.services.RequestGlobals;后者提示无法解析,请指教。

应该是API变了吧。上述代码已经不需要了。
9 楼 Linuxboy 2009-01-04  
cclike 写道

5.0.15 还需要这些代码吗?

我记得5.0.6开始就已经不需要了。
很久没有来这儿了,抱歉!
8 楼 cclike 2008-10-27  
5.0.15 还需要这些代码吗?
7 楼 Linuxboy 2007-09-21  
T5.0.5已经不需要使用上述代码了,直接支持UTF-8。
6 楼 sun58224 2007-08-11  
RequestGlobals, requestGlobals.getHTTPServletRequest(),要分别引入哪些包,前者用org.apache.tapestry.services.RequestGlobals;
后者提示无法解析,请指教。
5 楼 sun58224 2007-07-15  
表单里输入汉字枚举常量,T5.0.5还是不能通过编译,怎样处理呢?
4 楼 Linuxboy 2007-07-11  
5.0.5中已经解决这个问题了。
3 楼 Linuxboy 2007-06-04  
原本作者在JIRA中定于5.0.5版修复中文支持问题的,但近日作者又将修复版本号去掉了?
难道是已经解决了,又或者是不准备解决这个问题了?
2 楼 Linuxboy 2007-04-26  
不能保存为正确的中文,原来是数据库的设置问题。现在已经解决 
1 楼 Linuxboy 2007-04-25  
解决了中文的显示问题,但没有解决中文的输入问题。
从表单输入的中文字符不能正确编码储存。

相关推荐

    tapestry4和5学习资料

    1. **Tapestry5最新中文教程.doc**: 这份文档可能是针对Tapestry 5的最新中文教程,旨在为初学者提供一个易懂的入门指南。通常,它会涵盖基本的框架安装、环境配置、组件使用、事件处理、页面和组件生命周期等主题...

    tapestry学习入门资料

    "tapestry学习入门资料" Tapestry 是一个开源的基于 servlet 的应用程序框架,它使用组件对象模型来创建动态的、交互的 web 应用。 Tapestry 使得 Java 代码与 HTML 完全分离,利用这个框架开发大型应用变得...

    Tapestry 5 Building Web Applications.pdf

    - **认证与授权机制**:介绍 Tapestry 5 提供的安全性解决方案。 - **角色与权限管理**:演示如何基于角色进行权限控制。 - **会话管理**:讲解如何管理用户的会话状态。 ##### 7. **性能优化与部署** - **缓存...

    tapestry5中文文档

    Apache Tapestry 5 是一个基于Java的Web应用开发框架,其设计目的是为了简化Web应用程序的构建,提供组件化的页面构建、输入验证...通过学习和实践Tapestry 5,开发者能够更好地理解和掌握现代Web应用开发的最佳实践。

    Tapestry5最新中文入门实例教程

    ### Tapestry5最新中文入门实例教程 #### 一、引言 Tapestry是一个使用Java语言创建Web应用程序的面向组件的开发框架。本教程旨在通过实际案例帮助读者掌握Tapestry 5的基本概念和核心功能,并体验其带来的高效开发...

    Tapestry 5 電子書

    《Tapestry 5 電子書》是关于Java Web开发框架Tapestry 5的一本详尽指南,由Packt Publishing在2007年出版。这本书旨在帮助开发者深入理解和掌握Tapestry 5的各个方面,从而利用其强大功能构建高效、可维护的Web应用...

    Tapestry5最新中文教程

    Tapestry 5 的优势之一是其内建的Ajax支持,允许开发者创建动态和交互式的Web界面,而无需深入JavaScript编码。此外,Tapestry 5 提供了类重加载功能,使得开发过程中的代码改动能够即时生效,无需频繁的部署和重启...

    Tapestry 学习文档

    Tapestry可以与各种数据库、ORM工具(如Hibernate)、安全框架(如Spring Security)和MVC框架(如Spring)无缝集成,提供了一站式解决方案来构建完整的Web应用。 8. **开发工具支持**: 虽然文档是英文原版,但...

    Tapestry5.1学习全集多本书整合

    是一本由多本Tapestry资料整合而成。包括一些Tapestry的实例。

    tapestry5以上的帮助事例,帮助文档与spring衔接文档

    Tapestry是一个基于控件的框架以致于用它开发Web应用类似开发传统的GUI应用。你用Tapestry开发Web应用时你无需关注以操作为中心的(Operation-centric) Servlet API.引用Tapestry网站上的一句话:"Tapestry用对象...

    Tapestry5和jQuery集成tapestry5-jquery.zip

    Tapestry5和jQuery集成.使用jQuery以极少的兼容问题完全替换Prototype 和 Scriptaculous库 标签:tapestry5

    Tapestry5开发文档手册.doc

    异常报告详尽且提供解决方案建议。 3. 设计师友好:Tapestry 页面生成有效的HTML,可以直接在浏览器中查看,便于设计师进行样式调整。 4. 最佳实践封装:RESTful URL设计、可降级的JavaScript、无XML配置,遵循最佳...

    TapeStry5实例教程

    在这里提醒一下大家,这个教程讲的是tapestry5而不是tapestry4,如果需要看tapestry4的话,请看我传的另外一本有关tapestry的教程,英文的那本,里面的例子超级详细,英语也不难,感觉属于tapestry4里的巅峰之作。

    Brocade Tapestry StorageX解决方案简介

    Brocade Tapestry StorageX(文件资源虚拟管理解决方案)是一个集成的应用程序套件,用于从逻辑上整合异构环境和基于CIFS与NFS文件系统中分散的文件数据,并为管理员提供自动执行数据管理功能的方案。Tapestry ...

    Tapestry 5开发指南(英文)

    Tapestry 5是一款强大的Java Web应用程序框架,由Apache软件基金会维护。它提供了一种声明式编程模型,使得开发者能够创建动态、响应式的Web应用,同时保持代码的整洁和易于维护。本指南将深入探讨Tapestry 5的核心...

    Tapestry5实例(开发步骤)

    ### Tapestry5 实例开发详解 #### 一、前言 Tapestry 是一款用于构建企业级Java Web应用的强大框架,其第五代版本——Tapestry5,更是以其易用性和灵活性著称。本文旨在通过一个简单的实例来详细介绍如何利用...

    tapestry 5 ..........

    ### 关于Tapestry 5的关键知识点 #### 1. 什么是Tapestry? Tapestry是一个开源框架,用于创建动态、稳健且高度可扩展的Java Web应用程序。它补充并建立在标准Java Servlet API之上,因此可以在任何Servlet容器或...

    tapestry5 自定义组件

    1. **组件类**:在创建自定义组件时,你需要继承 `tapestry5.Component` 类或者其子类,如 `tapestry5.Block` 或 `tapestry5.MarkupWriter`。在这个例子中,我们可能会创建一个名为 `MyEmail` 的类,它包含发送邮件...

    自己学习tapestry后做的小例子

    【标题】:“自己学习tapestry后做的小例子” Tapestry是Apache软件基金会的一个开源项目,它是一个基于Java的企业级Web应用框架。这个标题表明,这个压缩包包含了一个作者在学习Tapestry框架后制作的小型示例项目...

Global site tag (gtag.js) - Google Analytics