login
- + -读书准备工作描述
- 安装JDK7或者以上版本
- + -安装NetBeans 7或者以上版本
- 采用完全安装
- + -采用随书提供的例题源代码,创建项目
- 这里采用的源代码是javaee文件夹下的
- 这里采用的应用服务器是GlassFish Server 3
- + -读书方式描述(完全以“剥白菜法”来读项目)
- + -第一阶段:运行项目
- + -运行项目
- 打开项目首页
- 填写Name和Password
- 点击“Login”按钮-->打开welcome.xhtml页面
- + -运行项目
- + -第二阶段:浏览项目
- + -浏览项目结构
- 在“项目”窗口中浏览项目的逻辑文件结构
- 在“文件”窗口中浏览项目的物理文件结构
- 在“服务”窗口中浏览项目关联的“数据库”和“服务器”
- + -浏览项目结构
- + -第三阶段:项目分层阅读
- + -第一层面:视图层
- 从项目的首页“index.xhtml”开始
- 到欢迎页面“welcome.xhtml”结束
- 第二层面:页面后台管理层
- + -管理bean的实例对象名称: user
- user是UserBean的一个实例对象
- 用标注@Named("user")将该对象注入到JSF上下文中
-
形式如下所示:
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("user")
@SessionScoped
public class UserBean implements Serializable {
-
- 用标注将该对象的作用域限定为session范围
-
形式如下所示:
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("user")
@SessionScoped
public class UserBean implements Serializable {
-
- 要实现接口Serializable使其对象可序列化
-
形式如下所示:
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("user")
@SessionScoped
public class UserBean implements Serializable {
-
- 复合JavaBean的标准
- 在index.xhtml页面中,使用管理bean
- 在welcome.xhtm页面中使用管理bean
- + -管理bean的实例对象名称: user
- + -第三层面:后台数据持久管理层
- 无
- + -第四层面:后台数据持久对象层
- 无
- + -第五层面:后台数据持久物理层
- 无
- + -第一层面:视图层
- + -第一阶段:运行项目
- + -读书分层记录描述
- + -第一层面:视图层
- + -从项目的首页“index.xhtml”开始
- +-页面需要的标签库,在这里是使用标签html的特性xmlns(命名空间)的值来定义的
- xmlns="http://www.w3.org/1999/xhtml"
- +-xmlns:h="http://java.sun.com/jsf/html"
- xmlns:h中的h是在引用该标签库的标签时的“前缀”符合
- 允许使用其它字母来表示
- +-头部
- +-JSF HTML标签
- h:head
- +-HTML标签
- title
- +-JSF HTML标签
- +-主体部分
- +-JSF HTML标签
- h:body
- h:form
- +-h:inputText
- +-特性
- value="#{user.name}"
- +-组件类型
- 输入文本
- +-特性
- +-h:inputSecret
- +-特性
- value="#{user.password}"
- +-组件类型
- 输入文本
- +-特性
- +-h:commanButton
- +-特性
- value="Login"
- action="welcome"
- +-组件类型
- 命令按钮
- +-特性
- +-JSF HTML标签
- +-页面需要的标签库,在这里是使用标签html的特性xmlns(命名空间)的值来定义的
- + -到欢迎页面“welcome.xhtml”结束
- +-主体部分
- +-HTML标签
- +-h3
- 文本:Welcome to JavaServer Faces, #{user.name}!
- +-h3
- +-HTML标签
- +-主体部分
- + -从项目的首页“index.xhtml”开始
- + -第二层面:页面后台管理层
- + -管理bean的实例对象名称: user
- user是UserBean的一个实例对象
- +-用标注@Named("user")将该对象注入到JSF上下文中
-
形式如下所示:
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("user")
@SessionScoped
public class UserBean implements Serializable {
-
- +-用标注将该对象的作用域限定为session范围
-
形式如下所示:
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("user")
@SessionScoped
public class UserBean implements Serializable {
-
- +-要实现接口Serializable使其对象可序列化
-
形式如下所示:
import java.io.Serializable;
import javax.enterprise.context.SessionScoped;
import javax.inject.Named;
@Named("user")
@SessionScoped
public class UserBean implements Serializable {
-
- 复合JavaBean的标准
- + -在index.xhtml页面中,使用管理bean
- +-value="#{user.name}"
- 管理bean user访问其属性name的值
- +-该表达式应用在“输入文本”组件上时,访问的是属性的设置方法
- 名称:setName()
- 参数:输入的文本
- +-value="#{user.password}"
- 管理bean user访问其属性password的值
- +-该表达式应用在“输入文本”组件上时,访问的是属性的设置方法
- 名称:setPassword()
- 参数:输入的文本
- +-value="Login"
- “Login”是该按钮上显示的文本
- 这里没有使用表达式语言,而是直接值:字符串
- +-action="welcome"
- +-“welcome”就是JSF页面导航字符串
- 在JSF2.0中,该字符串默认导航到同名页面去
- 这里没有使用表达式语言,而是直接值:字符串
- 当点击该按钮时,程序导航到字符串“welcome”同名的页面“welcome.xhtml”去
- +-“welcome”就是JSF页面导航字符串
- +-value="#{user.name}"
- + -在welcome.xhtm页面中,使用管理bean
- +-#{user.name}
- 管理bean user访问其属性name的值
- +-该表达式应用在“输出文本”组件上时,访问的是属性的读取方法
- 名称:getName()
- +-#{user.name}
- + -管理bean的实例对象名称: user
- + -第一层面:视图层