读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz-rest
2013-02-01 22:17
411 查看
All +All -
javaquiz-rest
+
-第一步:创建案例
使用随书源码在NetBeans中创建项目
+
-第二步:运行案例
在IDE中运行该案例
案例默认打开的首页页面是index.xhtml
+
-首页上显示的内容
+
-与案例javaquiz中的首页文件相比,区别是
该页面多一个链接:Skip
注意:在下面的阅读过程中,要重点关注它的区别点
+
-第三步:阅读案例结构
+
-第一层面:视图
与案例javaquiz的一致
+
-第二层面:控制
与案例javaquiz的一致
+
-第三层面:模型
与案例javaquiz的一致
+
-第四层面:配置
与案例javaquiz的一致
+
-第四步:阅读案例功能
+
-第一层面:视图
+
-页面文件
+
-index
+
-1,提供“视图参数”:
<f:metadata>
<f:viewParam name="q" value="#{quizBean.currentProblem}"/>
</f:metadata>
1)标签f:metadata
+
-2)子标签f:viewParam
(1)特性name用来指定视图参数的名称
(2)特性value用来指定视图参数的值
+
-2,提供链接组件Skip:
<h:link outcome="#{quizBean.skipOutcome}" value="Skip">
<f:param name="q" value="#{quizBean.currentProblem + 1}"/>
</h:link>
+
-1)标签h:link
(1)特性value用来指定该链接组件在页面上显示的“文本”
(2)特性outcome用来指定该链接组件的“结果”
+
-2)子标签f:param
(1)用来重写视图参数
(2)特性name用来指定参数的名称
(3)特性value用来指定参数的值
3,其余的与案例javaquiz中的同名文件内容相同
+
-success
1,提供链接组件Skip:代码与index中的相同
2,其余的与案例javaquiz中的同名文件内容相同
+
-again
1,提供链接组件Skip:代码与index中的相同
2,其余的与案例javaquiz中的同名文件内容相同
+
-failure
1,提供链接组件Skip:代码与index中的相同
2,其余的与案例javaquiz中的同名文件内容相同
+
-done
1,与案例javaquiz中的同名文件内容相同
+
-第二层面:控制
+
-页面控制器
+
-QuizBean功能
1)获取当前问题是问题集合中的哪一个:getCurrentProblem() : int
2)设置当前问题在问题集合中的下标:setCurrentProblem(int newValue)
3)获取链接“Skip”的“结果”:getSkipOutcome() : String
4)其余方法头同案例javaquiz的相同,但是方法体有些不同(这些内容超出了JSF范围,所以不做分析)
+
-数据控制器
+
-QuizBean功能
参见其作为“页面控制器”的功能描述
+
-第三层面:模型
与案例javaquiz的相同
+
-第四层面:配置
与案例javaquiz的一致
+
-发现新功能
+
-在页面文件中,除了done以外,都有一个链接“Skip”
作用是:跳过该问题,进入下一个问题
如果当前问题是问题集中的最后一个,那么就进入done页面
+
-第五步:案例中使用的新技术
+
-第一层面:视图
+
-index.xhtml
+
-1,“视图参数”标签:f:viewParam
*是元数据标签 f:metadata 的子标签
*必须放置在xhtml文件内部的顶部
+
-*视图参数的作用
这里的“参数名称与值对”相当于GET请求链接的参数,目的是传递参数到下一个视图
+
-2,该页面对视图参数的应用
在标签h:link中使用子标签f:param来重写视图参数
+
-3,“视图参数”的其他使用方式
+
-*不需要视图参数标签,而在“结果”字符串中指定参数
例如:
<h:link outcome="index?q=1" value="Skip">
+
-*在使用视图参数的标签中,应用该标签的特性includeViewParams="true"来包含所有的视图参数到查询字符串中
例如:
<h:link outcome="index" includeViewParams="true" value="Skip">
+
-其它页面
略
+
-第二层面:控制
+
-QuizBean
+
-*创建了一个int类型的数组
其size为问题集中存放问题的个数
+
-*计分方式
+
-在方法answerAction中
如果答案正确,将在数组中的某个下标处添加数值1,而这个下标数采用与当前问题在问题集中的下标数
如果答案错误,将在数组中的某个下标处添加数值0,而这个下标数采用与当前问题在问题集中的下标数
+
-*获取得分的方式
+
-在方法getScore中
轮询int数组中的元素,并且将其累加
+
-第三层面:模型
+
-Problem
与案例javaquiz相同
+
-第四层面:配置
与案例javaquiz相同
javaquiz-rest
+
-第一步:创建案例
使用随书源码在NetBeans中创建项目
+
-第二步:运行案例
在IDE中运行该案例
案例默认打开的首页页面是index.xhtml
+
-首页上显示的内容
+
-与案例javaquiz中的首页文件相比,区别是
该页面多一个链接:Skip
注意:在下面的阅读过程中,要重点关注它的区别点
+
-第三步:阅读案例结构
+
-第一层面:视图
与案例javaquiz的一致
+
-第二层面:控制
与案例javaquiz的一致
+
-第三层面:模型
与案例javaquiz的一致
+
-第四层面:配置
与案例javaquiz的一致
+
-第四步:阅读案例功能
+
-第一层面:视图
+
-页面文件
+
-index
+
-1,提供“视图参数”:
<f:metadata>
<f:viewParam name="q" value="#{quizBean.currentProblem}"/>
</f:metadata>
1)标签f:metadata
+
-2)子标签f:viewParam
(1)特性name用来指定视图参数的名称
(2)特性value用来指定视图参数的值
+
-2,提供链接组件Skip:
<h:link outcome="#{quizBean.skipOutcome}" value="Skip">
<f:param name="q" value="#{quizBean.currentProblem + 1}"/>
</h:link>
+
-1)标签h:link
(1)特性value用来指定该链接组件在页面上显示的“文本”
(2)特性outcome用来指定该链接组件的“结果”
+
-2)子标签f:param
(1)用来重写视图参数
(2)特性name用来指定参数的名称
(3)特性value用来指定参数的值
3,其余的与案例javaquiz中的同名文件内容相同
+
-success
1,提供链接组件Skip:代码与index中的相同
2,其余的与案例javaquiz中的同名文件内容相同
+
-again
1,提供链接组件Skip:代码与index中的相同
2,其余的与案例javaquiz中的同名文件内容相同
+
-failure
1,提供链接组件Skip:代码与index中的相同
2,其余的与案例javaquiz中的同名文件内容相同
+
-done
1,与案例javaquiz中的同名文件内容相同
+
-第二层面:控制
+
-页面控制器
+
-QuizBean功能
1)获取当前问题是问题集合中的哪一个:getCurrentProblem() : int
2)设置当前问题在问题集合中的下标:setCurrentProblem(int newValue)
3)获取链接“Skip”的“结果”:getSkipOutcome() : String
4)其余方法头同案例javaquiz的相同,但是方法体有些不同(这些内容超出了JSF范围,所以不做分析)
+
-数据控制器
+
-QuizBean功能
参见其作为“页面控制器”的功能描述
+
-第三层面:模型
与案例javaquiz的相同
+
-第四层面:配置
与案例javaquiz的一致
+
-发现新功能
+
-在页面文件中,除了done以外,都有一个链接“Skip”
作用是:跳过该问题,进入下一个问题
如果当前问题是问题集中的最后一个,那么就进入done页面
+
-第五步:案例中使用的新技术
+
-第一层面:视图
+
-index.xhtml
+
-1,“视图参数”标签:f:viewParam
*是元数据标签 f:metadata 的子标签
*必须放置在xhtml文件内部的顶部
+
-*视图参数的作用
这里的“参数名称与值对”相当于GET请求链接的参数,目的是传递参数到下一个视图
+
-2,该页面对视图参数的应用
在标签h:link中使用子标签f:param来重写视图参数
+
-3,“视图参数”的其他使用方式
+
-*不需要视图参数标签,而在“结果”字符串中指定参数
例如:
<h:link outcome="index?q=1" value="Skip">
+
-*在使用视图参数的标签中,应用该标签的特性includeViewParams="true"来包含所有的视图参数到查询字符串中
例如:
<h:link outcome="index" includeViewParams="true" value="Skip">
+
-其它页面
略
+
-第二层面:控制
+
-QuizBean
+
-*创建了一个int类型的数组
其size为问题集中存放问题的个数
+
-*计分方式
+
-在方法answerAction中
如果答案正确,将在数组中的某个下标处添加数值1,而这个下标数采用与当前问题在问题集中的下标数
如果答案错误,将在数组中的某个下标处添加数值0,而这个下标数采用与当前问题在问题集中的下标数
+
-*获取得分的方式
+
-在方法getScore中
轮询int数组中的元素,并且将其累加
+
-第三层面:模型
+
-Problem
与案例javaquiz相同
+
-第四层面:配置
与案例javaquiz相同
相关文章推荐
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 flags
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 select
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 messages
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第1章 JSF 简介——案例 login
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 sample
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 editing
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第1章 JSF 简介——案例 login-ajax
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 5 章 Facelets——案例 planets
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 javascript
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 personalData
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 headersAndFooters
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 2 章 受管 bean——案例 numberquiz
- JavaServer Faces中的页面导航
- Java核心技术II:实现服务器编程ServerSocket
- JavaServer Faces中的页面导航
- java网络编程:Socket和ServerSocket类
- JavaServer Faces 2.2 can not be installed : One or more constraints have not been satisfied.
- Java 并发编程:核心理论(转)
- Python案例-网络编程-socket入门-server&client