这些东东,对于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样式。
分享到:
相关推荐
通过JSF验证器,开发者可以轻松地添加这些验证规则,并在用户尝试提交表单时即时反馈错误信息。 "validatorTest"很可能是一个测试集,用于确保自定义验证器按预期工作。测试通常会覆盖各种边界情况和异常情况,以...
在JSF中,转换器(Converter)和验证器(Validator)是两个重要的组成部分,它们在处理用户输入数据时起着至关重要的作用。 **转换器(Converter)**: 1. 转换器的主要职责是将用户界面组件的值(通常为字符串)...
在JSF中,转换器和验证器扮演着至关重要的角色,它们允许我们对用户输入进行处理和验证,确保数据的质量和一致性。本实例将带你深入理解如何在JSF中创建自定义的转换器和验证器。 首先,我们来了解**转换器...
验证器`Validator`接口是JSF验证的基础,开发者可以通过实现`javax.faces.validator.Validator`接口来创建自定义验证器。验证器的使用包括: 1. **注册验证器**: 在faces-config.xml文件中,使用`<validator>`标签...
在这个“JSF 转换与验证”主题中,我们将深入探讨JSF如何处理数据转换和验证,这两个是确保应用程序数据准确性和一致性的关键方面。 一、数据转换 在JSF中,数据转换是将用户输入的数据从一种类型转换为另一种类型...
在JavaServer Faces (JSF)框架中,监听器和转换器是两个重要的组件,它们用于增强用户界面与后台数据处理的交互。在这个项目中,我们深入探讨了如何在JSF中有效地利用这两种机制。 首先,我们要理解JSF监听器的作用...
8. **国际化和本地化**:JSF支持多语言环境,开发者可以通过资源包(Resource Bundle)提供不同语言的文本,实现界面的本地化。 9. **自定义组件**:如果内置组件无法满足需求,开发者可以创建自己的JSF组件。这...
9. 国际化和本地化设置,包括中文环境的配置。 掌握JSF将使你能够更高效地开发企业级的Java Web应用,尤其对于那些需要与Java EE其他组件深度集成的项目,JSF是一个强大的选择。通过深入学习"JSF中文使用教程",你...
#### 一、JSF验证器概览 在JavaServer Faces (JSF) 中,用户输入验证是一项重要的功能,用于确保客户端提交的数据满足特定的要求。这不仅可以提升应用程序的安全性,还可以提高用户体验,通过及时反馈错误信息让...
这篇博客文章“jsf验证器与自定义验证”深入探讨了这些概念,并可能提供了实现细节和示例代码。 首先,JSF 内置的验证器是预定义的,用于检查常见的数据格式,如电子邮件地址、电话号码、日期等。这些验证器可以...
讲师很可能会演示如何在Myeclipse中创建一个简单的JSF项目,设置好环境后,他会逐步解释转换器的概念,编写一个自定义转换器的示例,展示如何注册和使用这个转换器,最后通过实际运行项目来验证转换器的正确性。...
JSF的核心组件包括UI组件、事件处理、数据绑定和转换验证。 ### 2. UI组件库 JSF 1.2提供了一套丰富的预定义UI组件,如按钮、输入字段、表格等。这些组件可以通过XML(Faces配置文件)或者在JSP页面上直接声明。...
**转换和验证** 是JSF中的重要部分,允许开发者定义数据输入的规则,确保用户提交的数据符合预期格式和约束。JSF提供了一系列内置的验证器,同时也支持自定义验证器。 **导航系统** 控制着用户操作后的页面跳转,...
Managed Beans是JSF中的业务逻辑容器,它们可以被JSF管理,包括实例化、初始化、销毁等,从而简化了业务逻辑的组织和管理。 此外,JSF还提供了丰富的扩展机制,例如Faces Servlet、Phase Listener、Converter和...
JSF内置了标准转换器和验证器,同时允许自定义转换器和验证器来满足特定需求。错误信息处理也是JSF的一部分,可以在数据转换或验证失败时提供反馈。 5. 事件处理 JSF支持多种类型的事件,包括动作事件(Action ...
在数据处理方面,JSF内置了标准转换器和验证器,这些转换器和验证器能够自动处理数据类型转换和输入验证,开发者也可以实现自定义转换器和验证器来满足特定的业务需求。JSF还包含了一套错误信息处理机制,能够在用户...
通过Managed Beans、EL、导航规则、数据转换和验证以及事件处理等机制,JSF支持了丰富的交互和动态内容展示,同时提供了对国际化和本地化的良好支持。对于想要深入了解JSF或开始使用JSF进行Web应用程序开发的读者,...
3. ** faces-config.xml** - 这是JSF应用的核心配置文件,用于定义导航规则、组件、转换器和验证器等。 4. ** Managed Beans** - JSF 中的主要业务对象,用于存储和管理应用程序的业务逻辑和状态。 5. **EL...
手册和教程将涵盖Struts2的配置、拦截器、Action类、结果类型、国际化和异常处理等内容,帮助开发者深入理解和应用这一框架。 最后,"JavaEE5_API.chm"是Java Enterprise Edition 5的API文档。Java EE提供了丰富的...