- 浏览: 1396927 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (328)
- JSF (27)
- 生活 (12)
- Ajax (26)
- Maven (6)
- CSS (1)
- Shale (3)
- SiteMesh (1)
- Ext (15)
- JMX (2)
- Windows技巧 (7)
- 工作感悟 (18)
- SVN (2)
- SVG (0)
- GoogleGear (0)
- RAP (2)
- SOA与WebService (3)
- 笔记本技术研究 (1)
- Microsoft (2)
- 英语学习 (3)
- PHP (7)
- web 2.0 (6)
- 语义Web (1)
- IT史话 (3)
- iText (3)
- JVM (1)
- PropertiesEditor (1)
- J2SE (33)
- Spring (2)
- Java Batch (1)
- log (2)
- Struts2 (2)
- DWR (0)
- JAAS (3)
- EJB3 (4)
- Flex (8)
- JFreeChart (1)
- WAS (0)
- 数据库 (2)
- 摄影 (0)
- SQL (1)
- Google App Engine (1)
- linux (5)
- Eclipse plugin (10)
- Testing (0)
- Portal (0)
- 移动互联网 (0)
- SWTBot (1)
最新评论
-
江奇缘:
不错!!!!!!
web.xml里<filter-mapping>中的<dispatcher>作用 -
yy8093:
commonj 第三步,那个调用的方法要在哪里调?servle ...
JAVA中多种计时器的比较与分析 -
di1984HIT:
学习了,不错~
web.xml里<filter-mapping>中的<dispatcher>作用 -
penkee:
com.lowagie.text.DocumentExcept ...
iText中输出 中文 -
氵壞男亼乀:
我想请问下 你哪个html里面引入的几个js文件没看懂!你 ...
DWR入门教程之HelloWorld
JSF
在转换和验证时都有可能会产生错误信息:
在使用标准转换器或验证器时,当发生错误时,会有一些预定义的错误信息显示,这些信息可以使用<h:messages>或<h:message>标签来显示出来,而这些预定义的错误信息也是可以修改的,您所要作的是提供一个信息资源文件,例如:
javax.faces.component.UIInput.CONVERSION=Format Error. javax.faces.component.UIInput.REQUIRED=Please input your data.
javax.faces.component.UIInput.CONVERSION是用来设定当转换器发现错误时显示的信息,
而javax.faces.component.UIInput.REQUIRED是在标签设定了required为true,而使用者没有在栏目输入时显示的错误信息。
您要在faces-config.xml中告诉JSF
您使用的信息文件名称,例如:
• faces-config.xml
<?xml version="1.0"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> <faces-config> <application> <local-config> <default-locale>en</default-locale> <supported-locale>zh_TW</supported-locale> </local-config> <message-bundle>messages</message-bundle> </application> ..... </faces-config>
在这边我们设定了信息文件的名称为messages_xx_YY.properties,其中xx_YY是根据您的Locale
来决定,转换器或验证器的错误信息如果有设定的话,就使用设定值,如果没有设定的话,就使用预定义值。
验证器错误信息,除了上面的javax.faces.component.UIInput.REQUIRED
之外,还有以下的几个:
javax.faces.validator.NOT_IN_RANGE
Validation Error: Specified attribute is not between the expected values of {0} and {1}.
DoubleRangeValidator与LongRangeValidator,{0}与{1}分別代表minimum与maximum所设定的属性
javax.faces.validator.DoubleRangeValidator.MAXIMUM、javax.faces.validator.LongRangeValidator.MAXIMUM
Validation Error: Value is greater than allowable maximum of '{0}'.
DoubleRangeValidator或LongRangeValidator,{0}表示maximum属性
javax.faces.validator.DoubleRangeValidator.MINIMUM、javax.faces.validator.LongRangeValidator.MINIMUM
Validation Error: Value is less than allowable minimum of '{0}'.
DoubleRangeValidator或LongRangeValidator,{0}代表minimum属性
javax.faces.validator.DoubleRangeValidator.TYPE、javax.faces.validator.LongRangeValidator.TYPE
Validation Error: Value is not of the correct type.
DoubleRangeValidator或LongRangeValidator
javax.faces.validator.LengthValidator.MAXIMUM
Validation Error: Value is greater than allowable maximum of ''{0}''.
LengthValidator,{0}代表maximum
javax.faces.validator.LengthValidator.MINIMUM
Validation Error: Value is less than allowable minimum of ''{0}''.
LengthValidator,{0}代表minimum属性
在您提供自定义信息的时候,也可以提供{0}或{1}来设定显示相对的属性值,以提供详细正确的错误提示信息。
信息的显示有概述信息与详述信息,如果是详述信息,则在标识上加上 "_detail",例如:
javax.faces.component.UIInput.CONVERSION=Error. javax.faces.component.UIInput.CONVERSION_detail= Detail Error.
除了在信息资源文件中提供信息,您也可以在程序中使用FacesMessage来提供信息,例如在 JSF -自定义验证器 中我们就这么用过:
.... if(password.length() < 6) { FacesMessage message = new FacesMessage( FacesMessage.SEVERITY_ERROR, "字符长度小于6", "字符长度不得小于 6"); throw new ValidatorException(message); } . ....
最好的方法是在信息资源文件中提供信息,这么一来如果我们要修改信息,就只要修改信息资源文件的内容,而不用修改程序,来看一个简单的例子,假设我们的信息资源文件中有以下的内容:
onlyfun.caterpillar.message1=This is message1.
onlyfun.caterpillar.message2=This is message2 with \{0} and \{1}.
则我们可以在程序中取得信息资源文件的内容,例如:
package onlyfun.caterpillar; import java.util.Locale; import java.util.ResourceBundle; import javax.faces.context.FacesContext; improt javax.faces.component.UIComponent; import javax.faces.application.Application; import javax.faces.application.FacesMessage; .... public void xxxMethod(FacesContext context, UIComponent component, Object obj) { // 取得应用程序代表对象 Application application = context.getApplication(); // 取得信息文件主名称 String messageFileName = application.getMessageBundle(); // 取得当前 Locale 对象 Locale locale = context.getViewRoot().getLocale(); // 取得信息绑定 ResourceBundle 对象 ResourceBundle rsBundle = ResourceBundle.getBundle(messageFileName, locale); String message = rsBundle.getString( "onlyfun.caterpillar.message1"); FacesMessage facesMessage = new FacesMessage( FacesMessage.SEVERITY_FATAL, message, message); .... } .... ....
接下来您可以将FacesMessage对象填入ValidatorException或ConverterException后再丢
出,FacesMessage建构时所使用的三个参数是严重程度、概述信息与详述信息,严重程度有SEVERITY_FATAL、
SEVERITY_ERROR、SEVERITY_WARN与SEVERITY_INFO四种。
如果需要在信息资源文件中设定{0}、{1}等参数,则可以如下:
.... String message = rsBundle.getString( "onlyfun.caterpillar.message2"); Object[] params = {"param1", "param2"}; message = java.text.MessageFormat.format(message, params); FacesMessage facesMessage = new FacesMessage( FacesMessage.SEVERITY_FATAL, message, message); ....
发表评论
-
IBM jsf row select
2009-07-09 19:09 1311http://www.ibm.com/developerwor ... -
JSF中制作双表尾
2008-11-21 21:42 1710最近,在项目中遇到一个制作表尾的问题,效果 如下: ... -
JSF1.2中 ValueExpression的用法
2008-05-22 23:20 4904在1.2之前,可以向下面一样使用ValueBinding: V ... -
Tomcat中如何打开Sun JSF RI 1.2中的日志
2008-05-16 00:50 3605为了更加清楚的了解JSF请求在每一个生命周期中的执行情况,我们 ... -
JSF环境配置(JDK6+Eclipse3.3+Tomcat 6.0+JSF1.2+JSTL1.1)
2008-04-25 23:14 7007第一步: 下载安装 JDK 6 Update 3 h ... -
不可不看,JSF1.2 changes
2008-03-31 17:04 4326变化还是挺多的,仔细看看,可以省掉很多郁闷的时间哦。The n ... -
JSTL 1.2 下载
2008-03-31 14:26 30775在网上找JSTL找了一会,不太好找,就放在这里一份了: 网络下 ... -
JSF 1.2中对以前JSF的修改
2008-03-31 11:00 1912Features that are unavailable ... -
JSF 各版本一览
2008-03-28 18:03 3521JSF started its journey from ve ... -
JSF 背景
2008-03-25 17:29 1793自从第一个web应用程序Struts于2001年6月发布开始, ... -
在Dreamwear中开发JSF
2008-03-09 22:49 2739可以在Dreamwear中安装JSF插件,然后利用Dreamw ... -
JSF中Exception的处理
2007-12-21 15:54 4925JSF中Exception的处理<o:p>< ... -
JSF中Exception的处理
2007-12-21 14:56 78目标: 解析错误信息,使用Globalization 来显示 ... -
Why JSF
2007-12-17 16:03 1298JavaServer Faces is extremely i ... -
源码讲解renderResponse和responseComplete的区别
2007-11-17 00:40 4491看源代码: responseComplete: ... -
JSF 源代码赏析之Lifecycle
2007-11-15 23:41 5945JSF的生命周期在JSF ... -
如何在Maven中配置Richfaces
2007-11-08 17:41 30131.首先到这个地方下载maven http://maven. ... -
JSF 标准 转换器&验证器 文档
2007-11-02 18:50 2273下面是两篇文档 http://www.ibm.com/deve ... -
JSF 源代码赏析之FacesServlet
2007-10-30 00:08 12587学习JSF 多日,现在开始看看源代码。 首先是FacesSer ... -
Websphere 上部署Richfaces 3.10 Demo
2007-10-18 14:03 2326Websphere上部署 richfaces的demo一直有问 ...
相关推荐
接下来,我们在JSF页面(例如`index.xhtml`)中使用这些资源bundle中的文本。可以使用`<h:outputText>`组件来实现,通过`value`属性引用资源bundle中的键: ```xml ``` 在这里,`msg`是一个EL表达式,它引用了资源...
5. **消息的显示**:在JSF组件中,如`<h:outputText>`,可以使用`value`属性引用资源文件中的键,JSF会自动查找并显示相应Locale的值。例如,`['hello.message']}" />`。 6. **动态Locale切换**:为了让用户能够在...
当我们谈论"ADF(JSF)框架中使用国际化"时,我们指的是如何使应用程序能够支持多种语言,以便全球用户都能方便地使用。 在ADF和JSF中实现国际化通常涉及到以下几个关键步骤和知识点: 1. **资源bundle**:国际化...
组件可以通过标签在JSP或Facelets视图中使用,并通过JSF生命周期进行渲染。 2. **自定义组件开发**:在JSF 1.2中,开发者可以通过实现UIComponent接口并重写必要的方法来创建自定义组件。组件需要定义属性、事件...
3. **在页面中使用**:在JSF的XHTML页面中,我们可以使用EL(Expression Language)表达式来访问资源包中的字符串。例如: ```html ``` 这行代码会根据用户的浏览器设置或应用程序配置,自动选择合适的资源包,...
5. **国际化和本地化**: JSF提供强大的国际化支持,方便开发者为不同地区创建多语言应用。 三、JSF中的标签 JSF标签是用于构建用户界面的XML标记,它们在Facelets模板中使用,可以简化HTML代码。例如: 1. `...
- **Firefox和Chrome中的List显示问题**:若List控件使用`float:left`属性,可能导致显示异常。为了解决这个问题,应将`float:left`添加到List控件的rowclass上。 2. **WebSphere 8.5与CDI的兼容性问题**: - **...
2. 在ADF组件中,使用`<af:messages>`标签显示错误和警告信息,这些信息将自动从资源包中获取。 3. 对于自定义的标签文本,可以使用`#{msg['key']}`表达式来引用资源包中的键。 四、ADF i18n的实现步骤 1. 设置应用...
**国际化与本地化** `InputDate`组件支持多种语言,可以通过设置`locale`属性实现: ```xml locale="fr" label="法语日期" /> ``` 设置`locale`为"fr"表示使用法语作为界面语言。 ### 8. **样式与皮肤** ADF...
Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动...支持本地化(Locale)解析、主题(Theme)解析及文件上传等;
8. **国际化和本地化**:JavaEE支持多语言环境,通过Resource Bundle和Locale对象实现。 在“pp.rar”压缩包中,可能包含了上述各层的源代码文件、配置文件、库文件等。开发者通常会将各个模块组织成不同的目录,...
1.3. Seam 中的可点击列表:消息示例............................................................................................................................. 27 1.3.1. 理解代码.........................
5. **国际化与本地化**:Locale类和ResourceBundle类支持多语言环境下的应用程序。 6. **并发编程**:ExecutorService、Future、Semaphore等,提供更高级别的并发控制工具。 7. **XML处理**:DOM、SAX、JAXB等API...
- **本地化(Localization):** 将国际化后的应用程序针对特定地区和语言环境进行定制的过程。 - Java 提供了 Locale 类用于表示具体的地理位置和语言环境,可以配合 ResourceBundle 类来加载不同的资源文件。 ...
4. **国际化与本地化**:`java.text`和`java.util.Locale`为多语言环境提供了支持。 5. **反射**:`java.lang.reflect`允许在运行时检查类、接口、字段和方法的属性。 6. **集合框架**:`java.util`中的ArrayList...