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,JavaBean
- + -视图控制器的作用
- + -二,数据控制器
- + -数据控制器的作用
- 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,用户填写答案,并提交
- + -1,当同时满足如下条件时,显示该页面
- + -again
- + -1,当同时满足如下条件时,显示该页面
- (1)提交答案不正确
- (2)对当前问题连续提交答案次数不大于1
- 2,显示消息:当前答案不正确
- 3,保持之前的问题不变
- 4,填写答案,并提交
- + -1,当同时满足如下条件时,显示该页面
- + -failure
- + -1,当同时满足如下条件时,显示该页面
- (1)提交答案不正确
- (2)对当前问题连续提交答案的次数大于1
- (3)当前的问题不是问题集合中的最后一个
- 2,显示消息:当前答案仍然不正确
- 3,提供信息:正确答案
- 4,提供内容:下一个问题
- + -1,当同时满足如下条件时,显示该页面
- + -done
- 1,当前的问题,是问题集合中的最后一个时,显示该页面
- 2,显示消息:谢谢参与
- 3,显示消息:当前得分数
- + -4,提供提交按钮:StartOver
- (1)重新开始
- (2)缺少了退出程序的操作,但是,关闭网页可以实现
- + -index
- + -二,页面控制器功能
- + -1,QuizBean
- (1)负责处理提交答案:answerAction()
- (2)获取当前问题的正确答案:getAnswer()
- (3)获取问题集合中的一个问题:getQuestion()
- (4)获取提交的答案:getResponse()
- (5)获取当前答题的得分数:getScore()
- (6)设置提交的答案:setResponse()
- (7)负责提交程序开始指令:startOverAction()
- + -1,QuizBean
- + -三,实体对象功能
- + -1,Problem
- (1)获取问题的正确答案:getAnswer()
- (2)获取问题:getQuestion()
- (3)判断提交的答案与问题的正确答案是否相同:isCorect()
- + -1,Problem
- + -一,页面文件功能
- + -案例中的新技术
- + -一,静态导航
- 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>
-
- + -一,静态导航