读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 2 章 受管 bean——案例 numberquiz
2013-01-24 10:35
232 查看
All +All -
numberquiz
+
-使用案例
+
-运行案例
在NetBeans中运行
+
-自动打开首页面
提供一组序列(由5个数字元素组成)
+
-提供一个输入文本框
以供用户填写序列的第6个元素
+
-提供一个按钮
以供用户提交答案
+
-提供一个输出文本组件(在Your current score is后)
以供显示得分数
+
-操作描述
在文本框中输入用户猜想的序列的下一个元素,然后点击按钮
+
-页面内容变化
序列更新
文本框内容清空
如果答案正确,得分数加一分
如果答案不正确,得分数不变
+
-阅读案例(重点记录新知识点)
+
-第一层面:视图
+
-作用
与用户直接交互
+
-内容
+
-视图index.xhtml
HTML 标签
+
-JSF html 标签
+
-h:outputFormat
输出参数化的文本
+
-特性value
值:"#{msgs.currentScore}"
指定该组件的显示文本,例如“Your current score is {0}.”
该处指定的文本中存在“可变部分”
把这些“可变部分”使用“占位符”
占位符以{0},{1},{2}等编号
+
-子标签f:param
参见 JSF core标签一节
+
-JSF core 标签
+
-f:param
为父组件上的消息中的占位符指定值,使用特性value
+
-特性value
值:"#{quizBean.score}"
指定父组件上显示文本中的占位符的值
+
-第二层面:控制
+
-一,视图控制层
+
-作用
上接受视图的调用
下对数据管理层的搭配
+
-内容
+
-视图后台bean(上下文和相关性注入CDI bean)
+
-
什么是CDI bean(以类QuizBean为例)?
该类必须符合JavaBean规范
+
-使用标注@Named来声明该类为CDI bean
默认声明一个bean对象,其名称为:该类名称的首字母转为小写后的字符串
可以在标注后的圆括号内写入对象名称字符串,例如:@Named("quiz")
可以对标注的特性name赋值,例如:@Named(name="quiz")
+
-使用标注@SessionScoped来声明该bean的有效域
此时,该类必须实现接口Serializable
必须包含文件WEB-INF/beans.xml以激活CDI bean 处理机制
+
-CDI bean与JSF 管理bean的区别(以类QuizBean为例)?
+
-CDI bean
@Named来自于程序包:javax.inject.Named
@SessionScoped来自于程序包:javax.enterprise.context
用于Java EE 6应用服务器中
+
-管理bean
@ManagedBean
@SessionScoped来自于程序包:javax.faces.bean
仅用于servlet运行器(如:Tomcat)中
+
-bean的使用
上述两种bean,在页面文件中的使用,完全相同
可以统称为“页面后台bean”
+
-回头看第一章中的案例
其中的“页面后台bean”,称为“后台管理bean”
那里只是在“CDI bean”概念没有引入之前,暂时保留JSF2.0之前版本的称谓而已
在此后的章节中,可以将这些bean统一称为“页面后台bean”或者“视图后台bean”
+
-页面index.xhtml中使用的CDI bean
+
-对象名称:quizBean
对应的Java Bean:GuizBean
+
-用例
#{quizBean.score}
#{quizBean.current.sequence}
#{quizBean.current.sequence}
#{quizBean.answer}
+
-消息包
+
-制定消息包
+
-将消息字符串收集到一个文件中
文件名称:可以选择任意
文件后缀:必须是properties
+
-文件内容:采用键与值的等式来描述
例如:username=User Name:
一个文件格式,可以查看java.util.Properties 类load方法的说明
+
-消息包文件保存的位置
可以选择任意目录路径
该案例保存在:src/java/com/corejsf/messages.properties
+
-声明消息包
+
-声明为局部(某个页面)资源包
+
-将f:loadBundle元素添加到JSF页面中
+
-用例
<f:loadBundle basename="com.corejsf.messages" var="msgs" />
+
-特性
+
-basename="com.corejsf.messages"
这里的“基本名称”,使用类全路径的形式
实际上,该属性文件是由类加载器加载的
+
-var="msgs"
它是该属性文件的映射变量
+
-使用
使用JSF表达式语言符号#{...}
+
-使用映射变量来访问文件中的键,返回该键的值
例如:#{msgs.title}
返回值:NumberQuiz
+
-声明为全局资源包(本案例使用的)
+
-在应用程序的WEB-INF目录中添加一个配置文件faces-config.xml
+
-用例
<application>
<resource-bundle>
<base-name>com.corejsf.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
+
-使用
参考“使用局部资源包”中的相关内容
+
-消息包的作用
便于保持消息的一致性
便于在其他地区运行应用程序时进行本地化处理
+
-消息包的使用
+
-在index.xhtml页面文件中
#{msgs.title}
#{msgs.heading}
#{msgs.currentScore}
#{msgs.next}
+
-二,数据控制层
+
-作用
上接受视图管理层的调配处理
下对数据对象的操作
+
-内容
+
-数据控制器
该案例由视图后台bean quizBean代替
+
-在其中直接管理“数据对象”
这里的数据对象是类ProblemBean,在实际应用程序中,
大多都将此类信息存储在数据库中
+
-数据控制器的使用
直接构造“数据对象”,并操作这些对象
+
-第三层面:模型
+
-一,数据对象层
+
-作用
上接受数据管理层的调配处理
下对数据进行操作
+
-内容
+
-数据对象
这里是类ProblemBean的实例对象
该类对象负责对数据进行操作
+
-数据对象的使用
通过“数据控制器”实现对数据的存取
+
-二,数据表层
无
numberquiz
+
-使用案例
+
-运行案例
在NetBeans中运行
+
-自动打开首页面
提供一组序列(由5个数字元素组成)
+
-提供一个输入文本框
以供用户填写序列的第6个元素
+
-提供一个按钮
以供用户提交答案
+
-提供一个输出文本组件(在Your current score is后)
以供显示得分数
+
-操作描述
在文本框中输入用户猜想的序列的下一个元素,然后点击按钮
+
-页面内容变化
序列更新
文本框内容清空
如果答案正确,得分数加一分
如果答案不正确,得分数不变
+
-阅读案例(重点记录新知识点)
+
-第一层面:视图
+
-作用
与用户直接交互
+
-内容
+
-视图index.xhtml
HTML 标签
+
-JSF html 标签
+
-h:outputFormat
输出参数化的文本
+
-特性value
值:"#{msgs.currentScore}"
指定该组件的显示文本,例如“Your current score is {0}.”
该处指定的文本中存在“可变部分”
把这些“可变部分”使用“占位符”
占位符以{0},{1},{2}等编号
+
-子标签f:param
参见 JSF core标签一节
+
-JSF core 标签
+
-f:param
为父组件上的消息中的占位符指定值,使用特性value
+
-特性value
值:"#{quizBean.score}"
指定父组件上显示文本中的占位符的值
+
-第二层面:控制
+
-一,视图控制层
+
-作用
上接受视图的调用
下对数据管理层的搭配
+
-内容
+
-视图后台bean(上下文和相关性注入CDI bean)
+
-
什么是CDI bean(以类QuizBean为例)?
该类必须符合JavaBean规范
+
-使用标注@Named来声明该类为CDI bean
默认声明一个bean对象,其名称为:该类名称的首字母转为小写后的字符串
可以在标注后的圆括号内写入对象名称字符串,例如:@Named("quiz")
可以对标注的特性name赋值,例如:@Named(name="quiz")
+
-使用标注@SessionScoped来声明该bean的有效域
此时,该类必须实现接口Serializable
必须包含文件WEB-INF/beans.xml以激活CDI bean 处理机制
+
-CDI bean与JSF 管理bean的区别(以类QuizBean为例)?
+
-CDI bean
@Named来自于程序包:javax.inject.Named
@SessionScoped来自于程序包:javax.enterprise.context
用于Java EE 6应用服务器中
+
-管理bean
@ManagedBean
@SessionScoped来自于程序包:javax.faces.bean
仅用于servlet运行器(如:Tomcat)中
+
-bean的使用
上述两种bean,在页面文件中的使用,完全相同
可以统称为“页面后台bean”
+
-回头看第一章中的案例
其中的“页面后台bean”,称为“后台管理bean”
那里只是在“CDI bean”概念没有引入之前,暂时保留JSF2.0之前版本的称谓而已
在此后的章节中,可以将这些bean统一称为“页面后台bean”或者“视图后台bean”
+
-页面index.xhtml中使用的CDI bean
+
-对象名称:quizBean
对应的Java Bean:GuizBean
+
-用例
#{quizBean.score}
#{quizBean.current.sequence}
#{quizBean.current.sequence}
#{quizBean.answer}
+
-消息包
+
-制定消息包
+
-将消息字符串收集到一个文件中
文件名称:可以选择任意
文件后缀:必须是properties
+
-文件内容:采用键与值的等式来描述
例如:username=User Name:
一个文件格式,可以查看java.util.Properties 类load方法的说明
+
-消息包文件保存的位置
可以选择任意目录路径
该案例保存在:src/java/com/corejsf/messages.properties
+
-声明消息包
+
-声明为局部(某个页面)资源包
+
-将f:loadBundle元素添加到JSF页面中
+
-用例
<f:loadBundle basename="com.corejsf.messages" var="msgs" />
+
-特性
+
-basename="com.corejsf.messages"
这里的“基本名称”,使用类全路径的形式
实际上,该属性文件是由类加载器加载的
+
-var="msgs"
它是该属性文件的映射变量
+
-使用
使用JSF表达式语言符号#{...}
+
-使用映射变量来访问文件中的键,返回该键的值
例如:#{msgs.title}
返回值:NumberQuiz
+
-声明为全局资源包(本案例使用的)
+
-在应用程序的WEB-INF目录中添加一个配置文件faces-config.xml
+
-用例
<application>
<resource-bundle>
<base-name>com.corejsf.messages</base-name>
<var>msgs</var>
</resource-bundle>
</application>
+
-使用
参考“使用局部资源包”中的相关内容
+
-消息包的作用
便于保持消息的一致性
便于在其他地区运行应用程序时进行本地化处理
+
-消息包的使用
+
-在index.xhtml页面文件中
#{msgs.title}
#{msgs.heading}
#{msgs.currentScore}
#{msgs.next}
+
-二,数据控制层
+
-作用
上接受视图管理层的调配处理
下对数据对象的操作
+
-内容
+
-数据控制器
该案例由视图后台bean quizBean代替
+
-在其中直接管理“数据对象”
这里的数据对象是类ProblemBean,在实际应用程序中,
大多都将此类信息存储在数据库中
+
-数据控制器的使用
直接构造“数据对象”,并操作这些对象
+
-第三层面:模型
+
-一,数据对象层
+
-作用
上接受数据管理层的调配处理
下对数据进行操作
+
-内容
+
-数据对象
这里是类ProblemBean的实例对象
该类对象负责对数据进行操作
+
-数据对象的使用
通过“数据控制器”实现对数据的存取
+
-二,数据表层
无
相关文章推荐
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 5 章 Facelets——案例 planets
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 editing
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 sample
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第1章 JSF 简介——案例 login
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz-rest
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 javascript
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 personalData
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 select
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 3 章 导航——案例 javaquiz
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 messages
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第1章 JSF 简介——案例 login-ajax
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 4 章 标准 JSF 标签——案例 flags
- 读《JavaServer Faces 核心编程(第3版)》一书的记录—— 第 6 章 数据库——案例 headersAndFooters
- JavaWeb学习记录(二十)——Model1模式(javaBean+jsp)实现简单计算器案例
- Java核心技术II:实现服务器编程ServerSocket
- JSF(javav server faces)简介
- java编程自学记录(day03)
- java核心编程之文件过滤类FileFilter和FilenameFilter
- Java 多线程编程核心技术--第一章
- JavaServer Faces 2.0草案发布——增强JavaScript库的交互性