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

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转换器和验证器与实例程序

    通过JSF验证器,开发者可以轻松地添加这些验证规则,并在用户尝试提交表单时即时反馈错误信息。 "validatorTest"很可能是一个测试集,用于确保自定义验证器按预期工作。测试通常会覆盖各种边界情况和异常情况,以...

    JSF(转换器+验证器)

    在JSF中,转换器(Converter)和验证器(Validator)是两个重要的组成部分,它们在处理用户输入数据时起着至关重要的作用。 **转换器(Converter)**: 1. 转换器的主要职责是将用户界面组件的值(通常为字符串)...

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

    在JSF中,转换器和验证器扮演着至关重要的角色,它们允许我们对用户输入进行处理和验证,确保数据的质量和一致性。本实例将带你深入理解如何在JSF中创建自定义的转换器和验证器。 首先,我们来了解**转换器...

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

    验证器`Validator`接口是JSF验证的基础,开发者可以通过实现`javax.faces.validator.Validator`接口来创建自定义验证器。验证器的使用包括: 1. **注册验证器**: 在faces-config.xml文件中,使用`&lt;validator&gt;`标签...

    JSF 转换与验证 .rar

    在这个“JSF 转换与验证”主题中,我们将深入探讨JSF如何处理数据转换和验证,这两个是确保应用程序数据准确性和一致性的关键方面。 一、数据转换 在JSF中,数据转换是将用户输入的数据从一种类型转换为另一种类型...

    jsf中监听器与转换器的使用

    在JavaServer Faces (JSF)框架中,监听器和转换器是两个重要的组件,它们用于增强用户界面与后台数据处理的交互。在这个项目中,我们深入探讨了如何在JSF中有效地利用这两种机制。 首先,我们要理解JSF监听器的作用...

    JSF中文教程.zip

    8. **国际化和本地化**:JSF支持多语言环境,开发者可以通过资源包(Resource Bundle)提供不同语言的文本,实现界面的本地化。 9. **自定义组件**:如果内置组件无法满足需求,开发者可以创建自己的JSF组件。这...

    jsf中文使用教程jsf中文使用教程

    9. 国际化和本地化设置,包括中文环境的配置。 掌握JSF将使你能够更高效地开发企业级的Java Web应用,尤其对于那些需要与Java EE其他组件深度集成的项目,JSF是一个强大的选择。通过深入学习"JSF中文使用教程",你...

    jsf用户输入验证

    #### 一、JSF验证器概览 在JavaServer Faces (JSF) 中,用户输入验证是一项重要的功能,用于确保客户端提交的数据满足特定的要求。这不仅可以提升应用程序的安全性,还可以提高用户体验,通过及时反馈错误信息让...

    jsf验证器与自定义验证

    这篇博客文章“jsf验证器与自定义验证”深入探讨了这些概念,并可能提供了实现细节和示例代码。 首先,JSF 内置的验证器是预定义的,用于检查常见的数据格式,如电子邮件地址、电话号码、日期等。这些验证器可以...

    JSF 转换器视频

    讲师很可能会演示如何在Myeclipse中创建一个简单的JSF项目,设置好环境后,他会逐步解释转换器的概念,编写一个自定义转换器的示例,展示如何注册和使用这个转换器,最后通过实际运行项目来验证转换器的正确性。...

    core jsf 1.2 jsf 核心

    JSF的核心组件包括UI组件、事件处理、数据绑定和转换验证。 ### 2. UI组件库 JSF 1.2提供了一套丰富的预定义UI组件,如按钮、输入字段、表格等。这些组件可以通过XML(Faces配置文件)或者在JSP页面上直接声明。...

    jsf 中文帮助文档

    **转换和验证** 是JSF中的重要部分,允许开发者定义数据输入的规则,确保用户提交的数据符合预期格式和约束。JSF提供了一系列内置的验证器,同时也支持自定义验证器。 **导航系统** 控制着用户操作后的页面跳转,...

    JSF入门(中文pdf)

    Managed Beans是JSF中的业务逻辑容器,它们可以被JSF管理,包括实例化、初始化、销毁等,从而简化了业务逻辑的组织和管理。 此外,JSF还提供了丰富的扩展机制,例如Faces Servlet、Phase Listener、Converter和...

    《JSF入门》简体中文版.pdf

    JSF内置了标准转换器和验证器,同时允许自定义转换器和验证器来满足特定需求。错误信息处理也是JSF的一部分,可以在数据转换或验证失败时提供反馈。 5. 事件处理 JSF支持多种类型的事件,包括动作事件(Action ...

    JSF开发文档

    在数据处理方面,JSF内置了标准转换器和验证器,这些转换器和验证器能够自动处理数据类型转换和输入验证,开发者也可以实现自定义转换器和验证器来满足特定的业务需求。JSF还包含了一套错误信息处理机制,能够在用户...

    JSF配置.pdf

    通过Managed Beans、EL、导航规则、数据转换和验证以及事件处理等机制,JSF支持了丰富的交互和动态内容展示,同时提供了对国际化和本地化的良好支持。对于想要深入了解JSF或开始使用JSF进行Web应用程序开发的读者,...

    jsf介绍和例子

    3. ** faces-config.xml** - 这是JSF应用的核心配置文件,用于定义导航规则、组件、转换器和验证器等。 4. ** Managed Beans** - JSF 中的主要业务对象,用于存储和管理应用程序的业务逻辑和状态。 5. **EL...

    教程与手册(Dhtml手册、 JSF中文教程)

    手册和教程将涵盖Struts2的配置、拦截器、Action类、结果类型、国际化和异常处理等内容,帮助开发者深入理解和应用这一框架。 最后,"JavaEE5_API.chm"是Java Enterprise Edition 5的API文档。Java EE提供了丰富的...

Global site tag (gtag.js) - Google Analytics