读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz

All + All -

javaquiz

  • + -创建案例
    • 使用随书源码在NetBeans中创建项目
  • + -使用案例
    • 运行案例
      • 运行后,直接打开页面
        • 页面的标题
          • A Java Trivia Quiz
        • 页面显示的内容
          • 一行文本
            • 显示的是一个问题
          • 一个文本输入框
            • 用户可以输入答案
          • 一个提交按钮
            • 用户点击后提交答案
    • + -操作案例
      • 在文本输入框中输入:run anywhere
      • 然后,点击按钮提交答案
      • 如果答案正确
        • 打开成功页面:success.xhtml
        • 显示答案正确,得分数,并显示一个新问题
        • 为新问题提交答案
      • 如果答案错误
        • 打开失败页面:failure.xhtml
        • 显示答案是错的,并提示可以重新提交答案
        • 重新提交答案
          • 如果答案正确
            • 打开成功页面:success.xhtml
          • 如果答案仍然错误
            • 打开页面:again.xhtml
            • 提供正确答案,并显示一个新问题
            • 为新问题提交答案
      • 当问题回答完毕后
        • 打开完成页面:done.xhtml
        • 提示问题已经解答完毕,显示出本轮答题得分数,并提供重新开始按钮“start over”
  • + -阅读案例构造
    • + -第一层面:视图
      • 视图的作用
        • 提供与用户的交互功能
          • 向应用程序提交信息
          • 显示应用程序传递给用户的信息
      • 案例中包含的视图
        • index.xhtml
        • success.xhtml
        • failure.xhtml
        • again.xhtml
        • done.xhtml
    • + -第二层面:控制
      • + -一,视图控制器
        • + -视图控制器的作用
          • 1,是一个JavaBeans组件
          • 2,使UI组件对象与处理特定功能的对象分开
          • 3,UI组件的特性可以绑定到它的属性或功能方法上
        • + -案例中包含的视图控制器
          • + -1,JavaBean
            • quizBean:QuizBean
          • + -2,消息包
            • msgs:messages
      • + -二,数据控制器
        • + -数据控制器的作用
          • 1,上接受视图控制器的调用
          • 2,下对实体对象进行相关操作
        • + -案例中包含的数据控制器
          • 1,视图控制器兼任了该职责
          • + -2,消息包
            • msgs:messages
    • + -第三层面:模型
      • + -一,实体
        • 实体的作用
          • 1,把应用领域中那些可以用名词定义的概念抽象为一个Java类
          • 2,类中定义的属性对应于概念的属性
          • 3,应用这些对象来操作应用程序中的数据
          • 4,而每个实体类对应于数据库中的某个表
          • 5,每个实体对象对应某个数据表中的一个记录
          • 6,由此,操作一个数据表的工作转化为操作一个Java对象
            • 这符合面向对象编程的思想
        • 案例中包含的实体对象
          • 1,类Problem
          • + -2,消息包
            • msgs:messages
      • + -二,数据库
        • 数据库的作用
          • 1,提供数据的持久存储
          • + -2,并且,允许对数据进行相关操作
            • 操作包括:增加,删除,修改和查询等
        • 案例中包含的数据库
  • + -阅读案例功能
    • + -一,页面文件功能
      • + -index
        • 1,项目启动后的默认显示页面
        • 2,显示消息:一个问题
        • 3,提供组件:填写答案的文本框
        • 4,提供组件:提交答案的按钮
      • + -success
        • + -1,当同时满足如下条件时,显示该页面
          • (1)提交答案是正确的
          • (2)当前的问题不是问题集合中的最后一个
        • 2,显示消息:答案是正确的
        • 3,显示消息:当前得分数
        • 4,提供信息:下一个问题
        • 5,用户填写答案,并提交
      • + -again
        • + -1,当同时满足如下条件时,显示该页面
          • (1)提交答案不正确
          • (2)对当前问题连续提交答案次数不大于1
        • 2,显示消息:当前答案不正确
        • 3,保持之前的问题不变
        • 4,填写答案,并提交
      • + -failure
        • + -1,当同时满足如下条件时,显示该页面
          • (1)提交答案不正确
          • (2)对当前问题连续提交答案的次数大于1
          • (3)当前的问题不是问题集合中的最后一个
        • 2,显示消息:当前答案仍然不正确
        • 3,提供信息:正确答案
        • 4,提供内容:下一个问题
      • + -done
        • 1,当前的问题,是问题集合中的最后一个时,显示该页面
        • 2,显示消息:谢谢参与
        • 3,显示消息:当前得分数
        • + -4,提供提交按钮:StartOver
          • (1)重新开始
          • (2)缺少了退出程序的操作,但是,关闭网页可以实现
    • + -二,页面控制器功能
      • + -1,QuizBean
        • (1)负责处理提交答案:answerAction()
        • (2)获取当前问题的正确答案:getAnswer()
        • (3)获取问题集合中的一个问题:getQuestion()
        • (4)获取提交的答案:getResponse()
        • (5)获取当前答题的得分数:getScore()
        • (6)设置提交的答案:setResponse()
        • (7)负责提交程序开始指令:startOverAction()
    • + -三,实体对象功能
      • + -1,Problem
        • (1)获取问题的正确答案:getAnswer()
        • (2)获取问题:getQuestion()
        • (3)判断提交的答案与问题的正确答案是否相同:isCorect()
  • + -案例中的新技术
    • + -一,静态导航
      • 1,在表单中,点击提交按钮时,程序总是选择固定的JSF页面来呈现响应
      • 2,按钮的action特性的值被称为“结果(outcome)”,是一个字符串类型的直接值,如:"welcome"
      • 3,“结果”可以映射到一个视图ID,并且将其用来呈现响应
    • + -二,动态导航
      • 1,在表单中,点击提交按钮时,程序根据提交的内容进行相应的运算,然后依据其结果决定选择对应的视图来呈现响应
      • 2,按钮的action特性的值是一个非字符串类型的直接值的表达式
      • 3,“结果”可以映射到一个视图ID,并且将其用来呈现响应
    • + -三,静态和动态导航的共性
      • 1,如果“结果”没有文件扩展名,则后置当前视图的扩展名
      • 2,如果“结果”没有以a/开头,则前置当前视图的路径
      • 3,如果“结果”是null,则取当前视图文件名称
      • + -4,“结果”到“视图”的映射配置
        • (1)从JSF 2.0开始是可选的

          (2)在JSF 2.0以前是必须的

          (3)配置内容实例:

          <navigation-rule>

                <from-view-id>/again.xhtml</from-view-id>

                <navigation-case>

                   <from-outcome>failure</from-outcome>

                   <to-view-id>/failure.xhtml</to-view-id>

                </navigation-case>

             </navigation-rule>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值