读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 flags
2013-02-04 22:30
483 查看
All +All -
flags
+
-第一步:创建案例
使用随书源码在NetBeans中创建项目
+
-第二步:运行案例
在IDE中运行该案例
+
-第三步:阅读案例结构
+
-Web
+
-页面文件
index.xhtml
thankYou.xhtml
+
-资源文件夹resources
+
-子文件夹images
图像文件de_flag.gif
图像文件en_flag.gif
+
-源包
+
-java包com.corejsf
LocaleChanger.java
UserBean.java
messages.properties
messages_de.properties
+
-库
JDK 1.7
GlassFish Server 3.1.2
+
-配置文件
beans.xml
faces-config.xml
web.xml
+
-第四步:阅读案例新功能
+
-第一层面:视图
+
-页面文件
+
-index.xhtml
*标题显示内容:Using Command Linke
*上部显示:德国旗帜和英国旗帜图案的“链接”组件
*当单击德国旗帜图案的链接时,页面显示的文本,由英文改变为德文
*当单击英国旗帜图案的链接时,页面显示的文本,由德文改变为英文
+
-thankYou.xhtml
与案例personalData相同
+
-第二层面:控制
+
-页面控制器
+
-UserBean
+
-*属性
保存用户名、密码和自我介绍信息的3个String类型的属性
+
-*方法
上述3个属性的读写方法
+
-LocaleChanger
*germanAction()
*englishAction()
+
-数据控制器
UserBean
+
-第三层面:模型
UserBean
+
-第四层面:配置
无新内容
+
-第五步:详解新技术--使用命名链接组件
+
-第一层面:视图
+
-视图文件
+
-index.xhtml
+
-*关于德国和英国旗帜的图案
+
-1,旗帜图案的文件在哪里?
在web根下的resources目录下(该目录是JSF2.0对页面资源的引用规定的一个固定目录)的子目录images内
+
-文件
en_flag.gif(是英国国旗图像文件)
de_flag.gif(是德国国旗图像文件)
+
-2,在哪个组件上应用了这些图案文件?
在组件h:commandLink的子组件h:graphicImage中应用了图像文件
*用组件h:graphicImage,来引入图像文件,在该组件出现的地方
*用组件h:graphicImage的特性library,来指定图像文件所在(在固定文件夹resources下)的能够文件夹,例如:library="images"
*用组件library的特性name,来指定图像文件的名称,例如:name="en_flag.gif"
+
-*关于德国和英国旗帜图案上的链接
+
-1,点击旗帜图案后页面上如何能够显示对应国家的语言文字呢?
(1)旗帜图案所在的组件,是个链接组件h:commandLink
(2)链接组件上的动作事件,由该组件的特性action指定的方法来处理
*这里指定的是一个JSF表达式
#{localeChanger.germanAction}
#{localeChanger.englishAction}
*表达式是页面后台控制器LocaleChanger实例对象的一个方法
germanAction()
englishAction()
(3)处理事件的方法都干了哪些事儿?
*这两个方法返回的都是null,因为这里不需要导航到其它也没去
*方法中设置了本地语言为链接所代表的那个国家的语言
英文为:Locale.ENGLISH
德文为:Locale.GERMAN
2,具体后台管理器的功能,参见类LocaleChanger
+
-thankYou.xhtml
无新内容
+
-视图资源
JSF2.0资源规定目录:resource
存放资源文件的子目录:images
+
-图像文件
德国国旗图像文件de_flag.gif
英国国旗图像文件en_flag.gif
+
-第二层面:控制
+
-页面控制器
+
-UserBean
无新内容
+
-LocaleChanger
+
-方法
处理设置应用场所为英国的方法:englishAction;返回null
处理设置应用场所为德国的方法:germanAction;返回null
+
-数据控制器
+
-UserBean
无新内容
+
-第三层面:模型
+
-UserBean
无新内容
+
-第四层面:配置
无新内容
+
-第五层面:国际化
+
-英文消息文件
com.corejsf.messages.properties
+
-德文消息文件
com.corejsf.messages_de.properties
+
-不同语言的消息文件的命名
在英文消息文件的基础上,添加下划线“_”和类Locale中对国家声明的常量字符,
例如:对英国的消息文件如果命名为messages
那么,对德国的消息文件必须命名为messages_de
对简体中文的消息文件必须命名为messages_zh_CN
对台湾中文的消息文件必须命名为messages_zh_TW
注意:这里不讨论太多国际化问题,它超出了该案例的主要问题
+
-第六步:应用JSF API
+
-1,找出英国英文的“本地对象”
Locale.ENGLISH
+
-2,找出德国德文的“本地对象”
Locale.GERMAN
+
-3,找的Faces的上下文对象
FacesContext context = FacesContext.getCurrentInstance();
+
-4,从Faces上下文对象中,找出“用户界面视图的根组件”,然后在根视图中设置“本地对象”
context.getViewRoot().setLocale(Locale.ENGLISH);
5,设置英国的本地对象的代码可以如下所示:
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot viewRoot=context.getViewRoot();
viewRoot.setLocale(Locale.ENGLISH);
6,设置德国的本地对象的代码可以如下所示:
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot viewRoot=context.getViewRoot();
viewRoot.setLocale(Locale.GERMAN);
flags
+
-第一步:创建案例
使用随书源码在NetBeans中创建项目
+
-第二步:运行案例
在IDE中运行该案例
+
-第三步:阅读案例结构
+
-Web
+
-页面文件
index.xhtml
thankYou.xhtml
+
-资源文件夹resources
+
-子文件夹images
图像文件de_flag.gif
图像文件en_flag.gif
+
-源包
+
-java包com.corejsf
LocaleChanger.java
UserBean.java
messages.properties
messages_de.properties
+
-库
JDK 1.7
GlassFish Server 3.1.2
+
-配置文件
beans.xml
faces-config.xml
web.xml
+
-第四步:阅读案例新功能
+
-第一层面:视图
+
-页面文件
+
-index.xhtml
*标题显示内容:Using Command Linke
*上部显示:德国旗帜和英国旗帜图案的“链接”组件
*当单击德国旗帜图案的链接时,页面显示的文本,由英文改变为德文
*当单击英国旗帜图案的链接时,页面显示的文本,由德文改变为英文
+
-thankYou.xhtml
与案例personalData相同
+
-第二层面:控制
+
-页面控制器
+
-UserBean
+
-*属性
保存用户名、密码和自我介绍信息的3个String类型的属性
+
-*方法
上述3个属性的读写方法
+
-LocaleChanger
*germanAction()
*englishAction()
+
-数据控制器
UserBean
+
-第三层面:模型
UserBean
+
-第四层面:配置
无新内容
+
-第五步:详解新技术--使用命名链接组件
+
-第一层面:视图
+
-视图文件
+
-index.xhtml
+
-*关于德国和英国旗帜的图案
+
-1,旗帜图案的文件在哪里?
在web根下的resources目录下(该目录是JSF2.0对页面资源的引用规定的一个固定目录)的子目录images内
+
-文件
en_flag.gif(是英国国旗图像文件)
de_flag.gif(是德国国旗图像文件)
+
-2,在哪个组件上应用了这些图案文件?
在组件h:commandLink的子组件h:graphicImage中应用了图像文件
*用组件h:graphicImage,来引入图像文件,在该组件出现的地方
*用组件h:graphicImage的特性library,来指定图像文件所在(在固定文件夹resources下)的能够文件夹,例如:library="images"
*用组件library的特性name,来指定图像文件的名称,例如:name="en_flag.gif"
+
-*关于德国和英国旗帜图案上的链接
+
-1,点击旗帜图案后页面上如何能够显示对应国家的语言文字呢?
(1)旗帜图案所在的组件,是个链接组件h:commandLink
(2)链接组件上的动作事件,由该组件的特性action指定的方法来处理
*这里指定的是一个JSF表达式
#{localeChanger.germanAction}
#{localeChanger.englishAction}
*表达式是页面后台控制器LocaleChanger实例对象的一个方法
germanAction()
englishAction()
(3)处理事件的方法都干了哪些事儿?
*这两个方法返回的都是null,因为这里不需要导航到其它也没去
*方法中设置了本地语言为链接所代表的那个国家的语言
英文为:Locale.ENGLISH
德文为:Locale.GERMAN
2,具体后台管理器的功能,参见类LocaleChanger
+
-thankYou.xhtml
无新内容
+
-视图资源
JSF2.0资源规定目录:resource
存放资源文件的子目录:images
+
-图像文件
德国国旗图像文件de_flag.gif
英国国旗图像文件en_flag.gif
+
-第二层面:控制
+
-页面控制器
+
-UserBean
无新内容
+
-LocaleChanger
+
-方法
处理设置应用场所为英国的方法:englishAction;返回null
处理设置应用场所为德国的方法:germanAction;返回null
+
-数据控制器
+
-UserBean
无新内容
+
-第三层面:模型
+
-UserBean
无新内容
+
-第四层面:配置
无新内容
+
-第五层面:国际化
+
-英文消息文件
com.corejsf.messages.properties
+
-德文消息文件
com.corejsf.messages_de.properties
+
-不同语言的消息文件的命名
在英文消息文件的基础上,添加下划线“_”和类Locale中对国家声明的常量字符,
例如:对英国的消息文件如果命名为messages
那么,对德国的消息文件必须命名为messages_de
对简体中文的消息文件必须命名为messages_zh_CN
对台湾中文的消息文件必须命名为messages_zh_TW
注意:这里不讨论太多国际化问题,它超出了该案例的主要问题
+
-第六步:应用JSF API
+
-1,找出英国英文的“本地对象”
Locale.ENGLISH
+
-2,找出德国德文的“本地对象”
Locale.GERMAN
+
-3,找的Faces的上下文对象
FacesContext context = FacesContext.getCurrentInstance();
+
-4,从Faces上下文对象中,找出“用户界面视图的根组件”,然后在根视图中设置“本地对象”
context.getViewRoot().setLocale(Locale.ENGLISH);
5,设置英国的本地对象的代码可以如下所示:
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot viewRoot=context.getViewRoot();
viewRoot.setLocale(Locale.ENGLISH);
6,设置德国的本地对象的代码可以如下所示:
FacesContext context = FacesContext.getCurrentInstance();
UIViewRoot viewRoot=context.getViewRoot();
viewRoot.setLocale(Locale.GERMAN);
相关文章推荐
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 personalData
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 select
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 javascript
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 messages
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第1章 JSF 简介——案例 login-ajax
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第1章 JSF 简介——案例 login
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 2 章 受管 bean——案例 numberquiz
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 sample
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz-rest
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 headersAndFooters
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 editing
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 5 章 Facelets——案例 planets
- Java核心技术II:实现服务器编程ServerSocket
- JSF技术介绍(JavaServer Faces Technology:chapter 9)《注:未完成》
- JSF(Java Server Face) 1.1标准错误消息键值及默认文本值
- Javaserver Faces 简介 — 什么是 JSF?
- JSF - Oracle Javaserver Faces 简介 — 什么是 JSF?
- Javaserver Faces 简介 — 什么是 JSF?
- Java Server Faces(JSF)历险(二),事件响应