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);

读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 flags相关推荐

  1. 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 headersAndFooters

    All + All - headersAndFooters + -本章阅读说明 1,第一步.第二步的内容适合于那些没有读过该案例之前的章节读者,建议其他读者直接从第三步开始阅读 2,这里的读书记录,偏 ...

  2. python核心编程第三版_Python之父:自学python,这3本书能节约你一大半时间编程...

    今天给大家推荐三本书,有两本是属于一个系列,即<Python核心编程>第二版和第三版,一本讲基础和一本讲进阶,非常适合Python的初学者和有一定基础的学习者.还有一本书适合所有想学Pyt ...

  3. 《Python核心编程》第二版第36页第二章练习 -Python核心编程答案-自己做的-

    <Python核心编程>第二版第36页第二章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 2.21 练习 2-1. 变量,print和字符串格式化操作符.启动交互式解 ...

  4. 《Python核心编程(第二版)》——1.9 练习

    本节书摘来自异步社区<Python核心编程(第二版)>一书中的第1章,第1.9节,作者[美]Wesley J. Chun,宋吉广 译,更多章节内容可以访问云栖社区"异步社区&qu ...

  5. 《Python核心编程》第二版第18页第一章练习 -Python核心编程答案-自己做的-

    <Python核心编程>第二版第18页第一章练习 这里列出的答案不是来自官方资源,是我自己做的练习,可能有误. 1.9 练习 1-1. 安装Python.请检查Python是否已经安装到你 ...

  6. python核心编程第三版_《Python核心编程(第3版)》

    <Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本,本书适合具有一定经验的Python开发人员阅读,总共分为3部分.第1部分为讲解 ...

  7. python编程入门第3版pdf-Python核心编程第3版PDF电子书免费下载

    本书是经典畅销图书<Python 核心编程(第二版)>的全新升级版本,总共分为 3 部分.第 1 部分讲解了 Python 的一些通用应用,包括正则表达式.网络编程.Internet 客户 ...

  8. python核心编程 第3版_Python核心编程(第3版)PDF高清晰完整中文版

    一.书籍简介 <Python核心编程(第3版)>是经典畅销图书<Python核心编程(第二版)>的全新升级版本. <Python核心编程(第3版)>总共分为3部分. ...

  9. 面试分析《疯狂Python讲义》PDF代码+《Python核心编程第3版》PDF代码问题

    python语言现在很流行了,除了用在学校,也用在很多行业.python学起来较为简单,语法容易理解,也可用于数据分析. 国内的教材推荐看<疯狂python讲义>,对比国外也有很多好的参考 ...

最新文章

  1. 问题1-2:能否说:“电路交换和面向连接是等同的,而分组交换和无连接是等同的”? 答:不行。这在概念上是很不一样的。这点可举例说明如下。...
  2. 二叉树重建(c++)
  3. node中间件KOA函数
  4. 好的文案,极大的降低沟通成本
  5. swith 好久不用都忘记了
  6. HDU4505 小Q系列故事——电梯里的爱情【水题】
  7. AcWing基础算法课Level-2 第六讲 贪心
  8. BZOJ2565: 最长双回文串(回文树)
  9. MySQL-创建表时建立索引和在已存在表中添加索引
  10. wordpress主题_20种色彩缤纷的WordPress主题组合(免费和高级)
  11. Bloodsucker ZOJ - 3551
  12. 资深技术 Leader 曹乐:如何成为技术大牛
  13. 海思59V200PQtool环境的搭建
  14. 好嗨游戏:TapTap9.9分,《鸡你太美》这到底是什么魔鬼游戏?
  15. 饿了么美团外卖cps返利系统外卖返利公众号搭建cps系统小程序SaaS源码
  16. 东杰转债上市价格预测
  17. windows之关闭thinkpad的默认fn功能键
  18. AURIX™ Development Studio 安装使用
  19. 消防法及相关法律法规(一)
  20. 新年特供【供应链作战指北】

热门文章

  1. C语言float转char数组
  2. mySql使用正则表达式匹配字符串
  3. 高校信息化 京华科讯桌面云搭把手
  4. 【※iPad到底有些什么用※lpxt】
  5. linux6.3 插u盘,[转载]使用CentOS 6.3制作linux U盘启动盘
  6. 最新!超10多所高校明确不再为全部研究生提供宿舍!
  7. 81、PON网络分光器基本常识汇总,弱电人要熟知!
  8. js生成的随机数的方法
  9. postgre 主键_PostgreSQL实现主键索引
  10. c语言数据类型(内含static的使用)