1. JSF是什么:在不同的角度上提供网页设计人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不互相干扰的前端技术框架,它严格遵循MVC设计模式。其实就是和structs几乎一模一样,配置上面的做法也差不多。
2. JSF 生命周期:FacesServlet 充当用户和 JSF 应用程序之间的纽带。它在明确限定的 JSF 生命周期(规定了用户请求之间的整个事件流)的范围内工作。
1. 当JSF页面上的一个事件发生时(比如:用户单击了一个按钮),事件通知通过HTTP发往服务器。服务器端使用FacesServet这个特殊的Servlet处理该通知。
2. FacesServlet一接收到用户的请求就创建一个FacesContext对象(JSF上下文,它存放了应用程序的所有数据)。在处理过程中,主要修改的就是这个FaceContext对象。
3. 接着就是处理过程,处理器是一个叫作Lifecycle的对象。FacesServet把控制权转交给Lifecycle对象。该对象分6个阶段来处理FacesContext对象以生成响应,最后将响应发回客户端。
3. 如何使用JSF
1. 添加jar包
2.配置web.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<description>
JSF Demo
</description>
<display-name>JSF Demo</display-name>
<servlet>
<!--核心servlet-->
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>
javax.faces.webapp.FacesServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
3.添加/WEB-INF/faces-config.xml文件
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC
"-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN"
"http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
<!-- 定义页面流程 -->
<navigation-rule>
<!-- 请求来自哪里 -->
<from-view-id>/index.jsp</from-view-id>
<!-- 在verify()方法中,我们检查使用者名称与密码,它传回一个字符串,"failure"表示登入错误,
并会设定错误讯息,而"success"表示登入正确,这个传回的字符串将决定页面的流程 -->
<navigation-case>
<from-outcome>success</from-outcome>
<to-view-id>/welcome.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>failure</from-outcome>
<to-view-id>/index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
<managed-bean>
<!--jsp页面引用的名字-->
<managed-bean-name>user</managed-bean-name>
<!-- 对应哪一个类-->
<managed-bean-class>
lcy.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
4. 处理类 UserBean.java
package lcy;
public class UserBean {
private String name;
private String password;
private String errMessage;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword() {
return password;
}
public void setErrMessage(String errMessage) {
this.errMessage = errMessage;
}
public String getErrMessage() {
return errMessage;
}
public String verify() {
if(!name.equals("lcy") ||
!password.equals("123")) {
errMessage = "名称或密码错误";
return "failure";
}
else {
return "success";
}
}
}
5.前台页面 index.jsp
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html;charset=utf-8"%>
<html>
<head>
<title>第一个JSF程序</title>
</head>
<body>
<f:view>
<h:form>
<h3>请输入您的名称</h3>
<h:outputText value="#{user.errMessage}"/><p>
名称: <h:inputText value="#{user.name}"/><p>
密码: <h:inputSecret value="#{user.password}"/><p>
<h:commandButton value="送出"
action="#{user.verify}"/>
</h:form>
</f:view>
</body>
</html>
6. welcome.jsp
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@page contentType="text/html;charset=Big5"%>
<html>
<head>
<title>第一个JSF程序</title>
</head>
<body>
<f:view>
<h:outputText value="#{user.name}"/> 您好!
<h3>欢迎使用 JavaServer Faces!</h3>
</f:view>
</body>
</html>
7. 直接访问 http://localhost:8080/jsfTest/index.faces
分享到:
相关推荐
jsf入门基础,可以让你很轻松的掌握jsf的基础,是不错的入门学习资料,框架的很好的电子图书
JSF&Primefaces入门基础知识
JSF学习笔记,总结了jsf的学习知识点,是学习jsf入门的基础
jsf简单入门教程,包括如何开始创建包含jsf技术的简单项目,jsf的基础知识点
JSF入门如果您是从使用的角度来看JSF,则您不用理会HTTP、数据转换等细节,JSF将细节都隐藏起来了,无论您是网页设计人员或是应用程序设计人员,都可以使用自己熟悉的方式来看JSF。 入门 藉由以下的几个主题,可以...
很好的学习jsf入门实例!
jsf基础的入门资料
清晰版--JSF入门.pdf。都是基础,没啥说的
主要讲JSF客户端快速入门题材: Web应用程序的开发与传统的单机程序开发在本质上存在着太多的差异,Web应用程序开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的(stateless)本质,与传统应用程序必须...
Web应用程序的开发与传统的单机程序开发在本质上存在着太多的差异,Web应用程序开发人员至今不可避免的必须处理HTTP的细节,而HTTP无状态的 (stateless)本质,与传统应用程序必须维持程序运行过程中的信息有明显的...
这份资料对于JSF新手很不错,熟悉JSF较快
jsf很好的pdf书···大家都好好看看吧,要好好学习天天向上,为了美好明天而奋斗,实在不想写了,就像赚点积分
jsf框架 jsf轻松入门
JSF入门基础知识。。 JavaServer Faces 的提出在试图解决这个问题,它试图在不同的角度上提供网页设计人员、应用程序设计人员、组件开发人员解决方案,让不同技术的人员可以彼此合作又不互相干扰,它综合了各家厂商...
JavaServer Faces作为一种新兴的Web表现层框架,正在受到越来越多的关注...本文描述了JSF的几大优势,以及这些优势所带来的Web开发的重大变革,从而试图 说明JSF将会在众多竞争者中脱颖而出,成为Web表现层框架的主流。
是我参加培训老师写的例子,很适合JSF入门
很基础的jsf框架使用,对初学者有一定的帮助
这个教程系列讨论 JavaServer Faces(JSF)技术的基础知识。...本系列针对 JSF 的新手,帮助他们快速入门 — 使用 JSF 并不是必需的,但是使用 JSF 组件可以减少工作量。本系列只讨论基础知识并提供大量示例
比较适合jsf的初学者,一些入门基础,标签组件讲解,以及一些实例。。。
网页设计人员要作的就是了解JSF的标签的使用方式,这就像是学习进阶的HTML标 签,另一件事就是与程序设计人员沟通好各个Bean的名称绑定。 ? 标签入门 卷标的相关属性查询,您可以参考 Tag Library Documentation,...