七、JSF国际化及其它
- 配置资源文件及locale
<faces-config>
<message-bundle>resource</message-bundle>
<application>
<locale-config>
<default-locale>zh</default-locale>
<supported-locale>en</supported-locale>
</locale-config>
</application>
</faces-config>
如果不设置message-bundle,也可以在jsp中指定<f:loadBundle var="msgs" basename="cn.jsfund.antiwash.bean.resources"/>,剩下的工作便是编写resource_zh.properties(zh区位)
和resource.properties(en区位)。resource_zh.properties文件必须是ASCII编码格式,可以先编写GBK/gb2312格式的文件再调用java自带的native2ascii工具进行转换。当然,如果采用eclipse开发工具,可以直接安装一个properties editor插件。
- jsp页面代码
<h:outputText value="#{msgs['ui.txt.bigCustAdd']}"></h:outputText>,其中"ui.txt.bigCustAdd=新增客户"必须是在资源文件中定义的字符串。
- 如何保存managed bean的状态
有些时候,对于request生命周期的bean,在页面跳转并返回原页面时我们想恢复其状态,那么可以使用saveState标签。
<t:saveState value="#{bigCustBean}"></t:saveState>
总结
总体来讲,本次jsf + hibernate的开发还是比较顺利的,途中遇到的一些技术问题,通过查找资料都逐个获得了解决。另外,还有一些网站开发中常见的问题,本文没有涉及:
- jsf输入控件的值校验(非空/数值范围/email/电话号码等)
- jsf重复提交问题的解决
- hibernate与IBatis的性能比较
- 各种框架的适用场景和使用建议
- ...
参考文档
[1] JSF和Struts框架的错误控制与封装处理
[2] JSF的参考文档和API,http://java.sun.com/javaee/javaserverfaces/
[3] JCatalog的项目代码及文档,http://www.javaworld.com/javaworld/jw-07-2004/jw-0719-jsf.html
[4] 在JSF中实现分页,http://www.blogjava.net/steady/archive/2005/12/29/25935.html
[5] Hibernate的参考文档及API,http://www.hibernate.org
[6] apache上的tomahawk项目,http://myfaces.apache.org/tomahawk/dataScroller.html
[7] dom4j,http://www.dom4j.org/
声明:参考文档中的资料无法考究其原作者和出处。天下文章一大抄,网上盛传的一些技术文章其原作者和出处已经无处可考。对于一些私自收集各种技术文章并且不注明作者和出处的行为,表示抗议!