`
zyl
  • 浏览: 484069 次
社区版块
存档分类
最新评论

jsf中的 国际化,验证和转换

阅读更多
    这些东东,对于web框架来说,是必不可少的,来看看jsf是如何实现的。首先看一下国际化,默认的情况下,会选择默认的locale,以及相应的资源文件。当然可以通过以下方式进行配置:
<application>
<locale-config>
<default-locale>en</default-locale>
<supported-locale>en</supported-locale>
<supported-locale>es</supported-locale>
</locale-config>
<message-bundle>CustomMessages</message-bundle>
</application>

资源文件,也是和其他web应用一致。
halloween=Every day is like Halloween.
numberOfVisits=You have visited us {0} time(s), {1}. Rock on!
toggleLocale=Translate to Spanish
helloImage=../images/hello.gif


如果需要在页面中使用相应的bundle,需要使用以下的标记:
<f:loadBundle basename="LocalizationResources" var="bundle"/>
<h:outputText value="#{bundle.halloween}"/>


当然这是使用默认的locale设置,如果想动态切换locale,目前我的处理方式是这样的:
<f:loadBundle basename="messages_#{localeBean.locale}" var="msg"/>

当然localeBean.locale的值是动态更改的,可以为en,zh_CN,等等。
个人觉得和spring 的web framework相比,没有spring的那么灵活,不过基本上都能解决问题,凑合着用吧。

如果想在代码中使用,还是需要使用以下方法:
public static String getMessageString(String name, Object params) {
    String str = "";
    FacesContext facesContext = FacesContext.getCurrentInstance();
    String bundleName = facesContext.getApplication().getMessageBundle();
    if (bundleName != null) {
        Locale locale = facesContext.getViewRoot().getLocale();
        ResourceBundle bundle = ResourceBundle.getBundle(bundleName,
            locale, getCurrentClassLoader(params));
        str = bundle.getString(name);
    }
    return str;
    }

    对于验证机制,基本的接口为Validator,只有一个方法validate。通常的验证机制,都是通过服务端来实现。如果想支持客户端支持,估计还得自己写一套接口去替换。不过看了其生命周期,觉得很难实现,除非脱离其生命周期。当然,这些使用ajax来处理,可能会减少服务端的通信负担。
   其默认的验证实现,包括以下几个:
   DoubleRange:<f:validateDoubleRange>
      Length:<f:validateLength>
      LongRange:<f:validateLongRange>

   从字面意思可以看出来。
   当然,每个组件都有默认的验证器required。只要设置其属性为ture,就会进行空值判断。
 
   对于组件来说,支持多个验证器。但是没有看到关联组件的验证器,需要自己实现。如password的是否一致

   类型转换,接口Converter,包括两个方法:
    public Object getAsObject(FacesContext context, UIComponent component,
                              String value);
    public String getAsString(FacesContext context, UIComponent component,
                              Object value);

 
  前者转化为对象,后者为用于页面输出。
  在进行验证前,都会先进行值转换。
  对于转换,内部已经提供了基本类型的实现,包括数字,日期,boolean型。
  当然Converter另外一个功能,就是提供格式化输出,支持NumberFormat和DateFormat的输出:
  包括:<f:convertDateTime>和<f:convertNumber pattern="###,###.##;(###,###.##)"/>其样式,完全采用相应的java样式。

分享到:
评论

相关推荐

    第7章 JSF转换器和验证器与实例程序

    第7章 JSF转换器和验证器与实例程序 JSF转换器和验证器(熊).ppt convertTest registraction validatorTest

    JSF自定义转换器验证器实例

    教你如何编写属于自己的JSF程序

    JSF 转换与验证 - 利用 JSF 的转换和验证框架来确保数据模型的完整性.rar

    JSF 转换与验证 - 利用 JSF 的转换和验证框架来确保数据模型的完整性.rar

    JSF(转换器+验证器)

    jsf转换器加上验证器,一个很好的原创代码啊,一定要好好学习

    JSF 转换与验证 .rar

    JSF 转换与验证 .rar

    JSF基础教程 简体中文

    o 国际化讯息 Managed Beans JSF 使用 Bean 来达到逻辑层与表现层分离的目的,Bean 的管理集中在组态档案中,您只要修改组态档案,就可以修改 Bean 之间的相依关系。 o Backing Beans o Beans 的组态与设定 o Beans...

    JavaEE5学习笔记11-JSF转换器验证器使用经验总结

    JavaEE5学习笔记11-JSF转换器验证器使用经验总结。

    JSF培训教程

    JSF培训教程,主要内容:JSF简介、JSF入门、JSF标签、JSF数据验证和转换 、JSF表格、JSF与Struts的区别

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版) 1/2

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    JSF入门pdf

    1.6国际化信息 2. Managed Beans 2.1 Backing Beans 2.2 Beans的配置与设定 2.3 Beans上的List, Map 3. 数据转换与验证 3.1 标准转换器 3.2自定义转换器 3.3标准验证器 3.4自定义验证器 3.5错误信息处理 3.6 自定义...

    jsf1.2+spring3.0+hibernate3.3例子-单表增删改查

    使用jsf1.2+spring3.0+hibernate3.3实现集成,利用annotation实现自动对象管理注入,用户表的登录增删改查操作,包括验证码ajax集成,消息机制,国际化处理,自定义转换器,自定义验证器等 qq:38732796 欢迎讨论

    JSF入门教程

    jsf入门教程讲解了JSF入门,managed beans,数据转换与验证,事件处理

    JSF实战 练习 开发

    本书适合正在开发java web应用的架构师、应用开发人员阅读。 本书集教程、案例和参考于一身,讲解了何为jsf,它的工作...书中还讲解了标准组件、呈现器、转换器和验证器的各种细节,以及如何应用它们来构建实际应用。

    JSF教程入门

    再则Web应用程序面对网站上不同的使用者同时的存取,其执行线程安全问题以及数据验证、转换处理等问题,又是复杂且难以解决的。 另一方面,本质上是静态的HTML与本质上是动态的应用程序又是一项违背,

    jsf的使用和详细说明

    包含JSF的所有处理(配置文件、事件处理、转换_验证、标签说明、国际化等),全部以文本文档的形式

    JSF框架使用示例.rar_JSF

    使用了JSF框架中的事件监听、转换器、验证器,实现了导航。

    Ajax4jsf

    Ajax4jsf 充分利用了JSF框架的优点,如: 生命周期, 验证, 转换的灵活性和受管理的静态和动态资源. 使用Ajax4jsf, 具有Ajax支持的富组件和高度可自定义的外观感觉可以很容易的与JSF结合起来.

    JavaServer Faces 2.0完全参考手册(JSF2.0中文版).part1

    《JavaServer Faces 2.0完全参考手册》对所有jsf功能都进行了解释,包括请求处理生命周期、托管bean、页面导航、组件开发、ajax、验证器、国际化和安全。贯穿全书的专家组意见提供了关于jsf设计的内部信息。 推荐...

    JSF入门环境配置XML配置和标签使用详细介绍以及发布部署

    JSF入门 JSF标签 JSF运行流程和生命周期 数据转换与验证 事件处理

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    3.2 JSF的国际化支持 132 3.2.1 加载国际化资源文件 132 3.2.2 使用国际化消息 134 3.2.3 动态数据国际化 137 3.2.4 让用户选择语言 142 3.3 使用转换器完成类型转换 143 3.3.1 转换器概述、用途 144 3.3.2 JSF内建...

Global site tag (gtag.js) - Google Analytics