JSF---->国际化讯息
来源:互联网 发布:linux开发工程师招聘 编辑:程序博客网 时间:2024/05/22 02:10
一、资源文件
messages.properties
titleText=JSF Demo hintText=Please input your name and passwordnameText=name passText=password commandText=Submit
资源文件名称由basename加上语言与地区来组成,例如:
basename.properties basename_en.properties basename_zh_cn.properties
由于讯息资源文件必须是ISO-8859-1编码,所以对于非西方语系的处理,必须先将之转换为Java Unicode Escape格式,使用JDK的工具程序native2ascii来转换(myeclipse有properties类型文件编辑器)。
messages_en.properties
globleTitleText = JSF DemoInputTip = Please input your name and password:NameTip = Name:PasswordTip = Password:CommandText = SubmitchooseLanguageTip = Please Choose Your Language:
messages_zh_cn.properties
globleTitleText = JSF2.0\u793A\u4F8BInputTip = \u8BF7\u8F93\u5165\u7528\u6237\u540D\u548C\u5BC6\u7801NameTip = \u7528\u6237\u540DPasswordTip = \u5BC6\u7801CommandText = \u63D0\u4EA4chooseLanguageTip =\u8BF7\u9009\u62E9\u60A8\u7684\u8BED\u8A00
接下来您可以使用<f:loadBundle>卷标来指定加载讯息资源,
<f:view>可以设定locale属性,直接指定所要使用的语系,例如:
<f:view locale="zh_cn"> <f:loadBundle basename="messages" var="msgs"/>
直接指定以上的话,则会使用繁体中文来显示,JSF会根据<f:loadBundle>的basename属性加上<f:view>的locale属性来决定要使用哪一个讯息资源文件,就上例而言,就是使用 messages_zh_cn.properties,如果设定为以下的话,就会使用messages_en.properties:
<f:view locale="en"> <f:loadBundle basename="messages" var="msgs"/>
您也可以在faces-config.xml中设定语系,例如:
<faces-config> <application> <local-config> <default-locale>en</default-locale> <supported-locale>zh_cn</supported-locale> </local-config> </application> ..... </faces-config>
在<local-config>一定有一个<default-locale>,而<supported-locale>可以有好几个,这告诉JSF您的应用程序支持哪些语系。当然,如果您可以提供一个选项让使用者选择自己的语系会是更好的方式,例如根据user这个Bean的locale属性来决定页面语系:
<f:view locale="#{user.locale}"> <f:loadBundle basename="messages" var="msgs"/>
二:例子-下拉列表改变页面中英文
(例子中使用的资源文件如上所示)
页面:index.jsp
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f"%><%@taglib uri="http://java.sun.com/jsf/html" prefix="h"%><%@page contentType="text/html;charset=gb18030"%><f:view locale="#{user.local }"><html><head><title><h:outputText value="#{msgs.globleTitleText}" /></title></head><body><f:loadBundle var="msgs" basename="messages" /><br><h:form><h:outputText value="#{msgs.chooseLanguageTip}"></h:outputText><h:selectOneMenu value="#{user.local}"onchange="this.form.submit();"valueChangeListener="#{user.changeLocale}"><f:selectItem itemValue="zh_CN" itemLabel="Chinese" /><f:selectItem itemValue="en" itemLabel="English" /></h:selectOneMenu><h3><h:outputText value="#{msgs.InputTip }" /></h3><h:outputText value="#{user.errMsg}"></h:outputText><br><h:outputText value="#{msgs.NameTip }"></h:outputText><h:inputText value="#{user.name}" /><br><h:outputText value="#{msgs.PasswordTip }" /><h:inputSecret value="#{user.password }"></h:inputSecret><br><h:commandButton value="#{msgs.CommandText}"action="#{user.verify }" /></h:form></body></html></f:view>
UserBean.java
package wsz.ncepu;import javax.faces.event.ValueChangeEvent;public class UserBean { private String name; private String password; private String errMsg; private String local; public String getLocal() { return this.local; } public void setLocal(String local) { this.local = local; } public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } public String getErrMsg() { return this.errMsg; } public void setErrMsg(String errMsg) { this.errMsg = errMsg; } public String getName() { return this.name; } public void setName(String name) { this.name = name; } /** * 校验用户名和密码的方法。 */ public String verify() { System.out.println("name:" + name + ",password:" + password); if (name.equals("admin") && password.equals("123456")) { return "success"; } else { errMsg = "用户名或密码错误!"; return "failure"; } } public void changeLocale(ValueChangeEvent event) { if ("en".equals(local)) local = "zh_CN"; else local = "en"; }}
结果如下:
- JSF Gossip: 国际化讯息
- JSF---->国际化讯息
- JSF---->错误讯息处理
- JSF Gossip: 错误讯息处理
- JSF国际化
- Jsf国际化
- jsf学习二(国际化)
- jsf的国际化
- jsf的国际化
- JSF国际化问题
- [转]JSF的国际化
- JSF的国际化
- jsf国际化的例子
- JSF国际化(i18n)
- JSF国际化与资源文件
- JSF中facelets的使用以及JSF国际化问题
- JSF的中文化与国际化
- JSF的中文化与国际化(转贴)
- Android 内存泄漏调试
- memo:PostgreSQL常用数学运算符和函数
- Android.mk File [documentation.html]
- linux input 按键驱动几点说明
- Slope One个性化推荐算法核心思想
- JSF---->国际化讯息
- 嵌入式系统多功能按键底层驱动设计
- 常用电阻电容标称值
- windbg符号路径设置
- JSF---->Managed Beans
- 动态分配内存(学习笔记11)
- OA办公系统成功实施的五大建议
- Nginx源码分析-master和worker进程间的通信
- JSF---->标准转换器(Converter)