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

All + All -

messages

  • + -本章阅读说明
    • 1,第一步、第二步和第三步的内容适合于那些没有读过该案例之前的章节读者,建议其他读者直接从第四步开始阅读
    • 2,这里的读书记录,偏重于该案例在书中想要说明的知识点,而不是把前面章节没有涉及的内容都作为新知识点
    • 3,建议阅读者,能够对照第四步中的内容,写出该案例的功能设计说明书
    • 4,建议阅读者,能够对照第五步中的内容,写出该案例的功能实现方案
    • 5,建议阅读者,能够动手在NetBeans(或其他IDE)中将该案例从头做一遍
    • 6,本人在读书时,使用了思维导图(FreeMind)工具,如果有阅读者需要原型文档的,可qq联系:1028637037
    • 7,该书是由美国 David Geary 和 Cay Horstmann 合著,由王超翻译,由《清华大学出版社》出版。如果您需要下载案例,可到出版社网址去。
  • + -第一步:创建案例
    • 使用随书源码在NetBeans中创建项目
  • + -第二步:运行案例
    • 在IDE中运行该案例
  • + -第三步:阅读案例结构
    • Web
      • 页面文件
        • index.xhtml
      • 资源文件夹resources
        • 子文件夹css
          • styles.css
    • 源包
      • java包com.corejsf
        • UserBean.java
        • messages.properties
      • JDK 1.7
      • GlassFish Server 3.1.2
    • 配置文件
      • beans.xml
      • faces-config.xml
      • web.xml
  • + -第四步:阅读案例新功能
    • + -第一层面:视图
      • + -页面文件
        • + -index.xhtml
          • *窗口标题显示内容:Using h:messages and h:message
            • 使用组件h:messages 和组件 h:message
          • *页面标题显示内容:Please fill out the following information
            • 请填写下列消息
          • *文本“Name:”,对应一个“文本输入框”组件
            • 供用户填写用户名
          • *文本“Age”,对应一个“文本输入框”组件
            • 供用户填写用户年龄
          • *文本“Submit form”,是一个“按钮”组件
            • 供用户提交表单用
    • 第二层面:控制
      • 页面控制器
        • UserBean
          • *对应页面JSF HTML组件的属性
            • 1,name:String
            • 2,age:int
          • *对应页面JSF HTML组件的方法
            • 1,对应于上述属性的读写方法
      • 数据控制器
        • UserBean
    • 第三层面:模型
      • “用户”对象模型
        • UserBean
    • 第四层面:配置
      • 无新内容
    • 功能总结
      • 同时使用了“消息”组件 h:message 和 h:messages
  • + -第五步:详解新技术(消息标签)
    • 第一层面:视图
      • 视图文件
        • index.xhtml
          • 1,一个“输出样式表”
            • *标签:h:outputStylesheet
            • *值绑定:在目录resource下
              • 子目录
                • css
                  • 由页面设计者命名
                  • 用于存放css文件
              • css文件
                • styles.css
            • *使用
              • (1)用来指定该页面中使用的css文件
              • (2)利用特性library来指定css文件在目录resource下的子目录,作为css文件库
                • 例如:library="css"
              • (3)利用特性name来指定css文件的名称
                • 例如:name="styles.css"
          • 2,一个“多条消息”组件
            • *标签:h:messages
            • *多条消息如何布局:layout="table"
              • 默认:layout="list"
            • *消息显示样式:errorClass="errors"
            • *作用
              • 显示错误消息
              • 显示其父组件(这里是:h:form)内部所有组件产生的错误消息
          • 3,一个“输入文本框”
            • *标签:h:inputText
            • *如果有多个相同类型组件,指定是哪个:id="name"
            • *值绑定:value="#{user.name}"
            • *要求必须输入值吗:required="true"
          • 4,一个“输入文本框”
            • *标签:h:inputText
            • *指定是哪个输入文本框:id="age"
            • *值绑定:value="#{user.age}"
            • *要求必须输入值吗:required="true"
            • *要求输入字符个数不大于3个:size="3"
          • 5,一个“消息组件”
            • *标签:h:message
            • *指定显示哪个组件上的错误消息:for="name"
            • *设置消息显示的css类:errorClass="errors"
          • 6,一个“消息组件”
            • *标签:h:message
            • *指定显示哪个组件上的错误消息:for="age"
            • *设置消息显示的css类:errorClass="errors"
          • 7,一个“单选按钮”
      • 视图资源
        • JSF2.0资源规定目录:resource
        • 存放资源文件的子目录:css
        • 级联样式表
          • styles.css
    • 第二层面:控制
      • 页面控制器
        • UserBean
      • 数据控制器
        • UserBean
    • 第三层面:模型
      • 用户对象模型
        • UserBean
    • 第四层面:配置
      • 因为,本章重点学JSF标签,所以,该内容暂时略过
    • 第五层面:国际化
      • 英文消息文件
        • com.corejsf.messages.properties
      • 注意:这里不讨论太多国际化问题,它超出了该案例的主要问题
  • + -附:谈谈本案例中的Java代码实现
    • 注意:页面中输入和显示的文本内容,其数据类型都是字符串String
    • + -一,“用户的名称”从输入到显示的过程
      • + -1,输入用户名称的组件
        • (1)组件在哪个文件中?
        • (2)组件的名称是什么?
      • + -2,保存用户名称的有关知识点
        • (1)什么时候保存该组件中输入的内容?
        • (2)输入的内容保存到哪里了?
        • (3)依靠哪个功能保存输入的内容呢?
        • (4)保存的内容数据类型是什么?
        • (5)如果没有输入内容会出现什么情况呢?
      • + -3,显示用户名称的组件
        • (1)组件在哪个文件中?
        • (2)组件的名称是什么?
      • + -4,获取用户名称的有关知识点
        • (1)什么时候显示用户名称?
        • (2)从哪里获取用户名称?
        • (3)依靠哪个功能获取用户名称的呢?
        • (4)读取的用户名称数据类型是什么?
        • (5)返回的用户名称数据类型是什么?
    • + -二,“用户的年龄”从输入到显示的过程
      • + -1,输入用户年龄的组件
        • (1)组件在哪个文件中?
        • (2)组件的名称是什么?
      • + -2,保存用户年龄的有关知识点
        • (1)什么时候保存该组件中输入的内容?
        • (2)输入的内容保存到哪里了?
        • (3)依靠哪个功能保存输入的内容呢?
        • (4)保存的内容数据类型是什么?
        • (5)如果没有输入内容会出现什么情况呢?
        • (6)如果输入的字符个数小于3、等于3或者大于3时,会出现什么情况呢?
      • + -3,显示用户年龄的组件
        • (1)组件在哪个文件中?
        • (2)组件的名称是什么?
      • + -4,获取用户年龄的有关知识点
        • (1)什么时候显示用户年龄?
        • (2)从哪里获取用户年龄?
        • (3)依靠哪个功能获取用户年龄的呢?
        • (4)读取的用户年龄数据类型是什么?
        • (5)返回的用户年龄数据类型是什么?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值