读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 flags
All + All -
flags
- + -第一步:创建案例
- 使用随书源码在NetBeans中创建项目
- + -第二步:运行案例
- 在IDE中运行该案例
- + -第三步:阅读案例结构
- + -Web
- + -页面文件
- index.xhtml
- thankYou.xhtml
- + -资源文件夹resources
- + -子文件夹images
- 图像文件de_flag.gif
- 图像文件en_flag.gif
- + -子文件夹images
- + -页面文件
- + -源包
- + -java包com.corejsf
- LocaleChanger.java
- UserBean.java
- messages.properties
- messages_de.properties
- + -java包com.corejsf
- + -库
- JDK 1.7
- GlassFish Server 3.1.2
- + -配置文件
- beans.xml
- faces-config.xml
- web.xml
- + -Web
- + -第四步:阅读案例新功能
- + -第一层面:视图
- + -页面文件
- + -index.xhtml
- *标题显示内容:Using Command Linke
- *上部显示:德国旗帜和英国旗帜图案的“链接”组件
- *当单击德国旗帜图案的链接时,页面显示的文本,由英文改变为德文
- *当单击英国旗帜图案的链接时,页面显示的文本,由德文改变为英文
- + -thankYou.xhtml
- 与案例personalData相同
- + -index.xhtml
- + -页面文件
- + -第二层面:控制
- + -页面控制器
- + -UserBean
- + -*属性
- 保存用户名、密码和自我介绍信息的3个String类型的属性
- + -*方法
- 上述3个属性的读写方法
- + -*属性
- + -LocaleChanger
- *germanAction()
- *englishAction()
- + -UserBean
- + -数据控制器
- 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"
- 在组件h:commandLink的子组件h:graphicImage中应用了图像文件
- + -1,旗帜图案的文件在哪里?
- + -*关于德国和英国旗帜图案上的链接
- + -1,点击旗帜图案后页面上如何能够显示对应国家的语言文字呢?
- (1)旗帜图案所在的组件,是个链接组件h:commandLink
- (2)链接组件上的动作事件,由该组件的特性action指定的方法来处理
- *这里指定的是一个JSF表达式
- #{localeChanger.germanAction}
- #{localeChanger.englishAction}
- *表达式是页面后台控制器LocaleChanger实例对象的一个方法
- germanAction()
- englishAction()
- *这里指定的是一个JSF表达式
- (3)处理事件的方法都干了哪些事儿?
- *这两个方法返回的都是null,因为这里不需要导航到其它也没去
- *方法中设置了本地语言为链接所代表的那个国家的语言
- 英文为:Locale.ENGLISH
- 德文为:Locale.GERMAN
- 2,具体后台管理器的功能,参见类LocaleChanger
- + -1,点击旗帜图案后页面上如何能够显示对应国家的语言文字呢?
- + -*关于德国和英国旗帜的图案
- + -thankYou.xhtml
- 无新内容
- + -index.xhtml
- + -视图资源
- JSF2.0资源规定目录:resource
- 存放资源文件的子目录:images
- + -图像文件
- 德国国旗图像文件de_flag.gif
- 英国国旗图像文件en_flag.gif
- + -视图文件
- + -第二层面:控制
- + -页面控制器
- + -UserBean
- 无新内容
- + -LocaleChanger
- + -方法
- 处理设置应用场所为英国的方法:englishAction;返回null
- 处理设置应用场所为德国的方法:germanAction;返回null
- + -方法
- + -UserBean
- + -数据控制器
- + -UserBean
- 无新内容
- + -UserBean
- + -页面控制器
- + -第三层面:模型
- + -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 标签——案例 flags相关推荐
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 headersAndFooters
All + All - headersAndFooters + -本章阅读说明 1,第一步.第二步的内容适合于那些没有读过该案例之前的章节读者,建议其他读者直接从第三步开始阅读 2,这里的读书记录,偏 ...
- python核心编程第三版_Python之父:自学python,这3本书能节约你一大半时间编程...
今天给大家推荐三本书,有两本是属于一个系列,即<Python核心编程>第二版和第三版,一本讲基础和一本讲进阶,非常适合Python的初学者和有一定基础的学习者.还有一本书适合所有想学Pyt ...
- 《Python核心编程》第二版第36页第二章练习 -Python核心编程答案-自己做的-
<Python核心编程>第二版第36页第二章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 2.21 练习 2-1. 变量,print和字符串格式化操作符.启动交互式解 ...
- 《Python核心编程(第二版)》——1.9 练习
本节书摘来自异步社区<Python核心编程(第二版)>一书中的第1章,第1.9节,作者[美]Wesley J. Chun,宋吉广 译,更多章节内容可以访问云栖社区"异步社区&qu ...
- 《Python核心编程》第二版第18页第一章练习 -Python核心编程答案-自己做的-
<Python核心编程>第二版第18页第一章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 1.9 练习 1-1. 安装Python.请检查Python是否已经安装到你 ...
- python核心编程第三版_《Python核心编程(第3版)》
<Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本,本书适合具有一定经验的Python开发人员阅读,总共分为3部分.第1部分为讲解 ...
- python编程入门第3版pdf-Python核心编程第3版PDF电子书免费下载
本书是经典畅销图书<Python 核心编程(第二版)>的全新升级版本,总共分为 3 部分.第 1 部分讲解了 Python 的一些通用应用,包括正则表达式.网络编程.Internet 客户 ...
- python核心编程 第3版_Python核心编程(第3版)PDF高清晰完整中文版
一.书籍简介 <Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本. <Python核心编程(第3版)>总共分为3部分. ...
- 面试分析《疯狂Python讲义》PDF代码+《Python核心编程第3版》PDF代码问题
python语言现在很流行了,除了用在学校,也用在很多行业.python学起来较为简单,语法容易理解,也可用于数据分析. 国内的教材推荐看<疯狂python讲义>,对比国外也有很多好的参考 ...
最新文章
- 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 答:不行。这在概念上是很不一样的。这点可举例说明如下。...
- 二叉树重建(c++)
- node中间件KOA函数
- 好的文案,极大的降低沟通成本
- swith 好久不用都忘记了
- HDU4505 小Q系列故事——电梯里的爱情【水题】
- AcWing基础算法课Level-2 第六讲 贪心
- BZOJ2565: 最长双回文串(回文树)
- MySQL-创建表时建立索引和在已存在表中添加索引
- wordpress主题_20种色彩缤纷的WordPress主题组合(免费和高级)
- Bloodsucker ZOJ - 3551
- 资深技术 Leader 曹乐:如何成为技术大牛
- 海思59V200PQtool环境的搭建
- 好嗨游戏:TapTap9.9分,《鸡你太美》这到底是什么魔鬼游戏?
- 饿了么美团外卖cps返利系统外卖返利公众号搭建cps系统小程序SaaS源码
- 东杰转债上市价格预测
- windows之关闭thinkpad的默认fn功能键
- AURIX™ Development Studio 安装使用
- 消防法及相关法律法规(一)
- 新年特供【供应链作战指北】