`
yaodi0818
  • 浏览: 135847 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JSF(Java Server Faces)学习日记

阅读更多
什么是JSF:
    JSF是一种事件驱动型的组件模型,以某个组件为单位,核心技术为FacesServlet.
    JSF(Java Server Faces)是基于MVC模式的新一代web framework,是一套JCP支持的新一代web开发规范,各个厂商可以定义自己的JSF实现,使开发更加容易.
JSF的优点:
(1)基于MVC,可以有效的将数据显示与业务逻辑分开处理.
(2)有功能强大丰富的web开发组件,可以可视化的设计开发web应用程序.
(3)事件驱动,这是JSF比较重要的特点,这种机制大大减少了开发时间,提高了开发效率.
一个简单的JSF应用(实现两数相加,显示结果):
文件列表:
add.jsp
result.jsp
web.xml
faces-config.xml
BackBean.java
AddBean.java
调试环境:
Apache Tomcat 6.0.13 + Eclipse 3.3.1 + jsf-1.2_04
步骤如下:
(1)新建web项目JSFLangsin
(2)在项目中添加JSF的几个库文件(jsf-*.jar)
WEB-INF/lib/commons-beanutils.jar
WEB-INF/lib/commons-collections.jar
WEB-INF/lib/commons-digester.jar
WEB-INF/lib/commons-logging-api.jar
WEB-INF/lib/jsf-api.jar
WEB-INF/lib/jsf-ri.jar
WEB-INF/lib/jstl.jar
WEB-INF/lib/standard.jar
(3)编写javaBean
package com.langsin;

public class BackBean {
	private double firstNumber=0.0;
	private double secondNumber=0.0;
	private double result;
	
	private AddBean addbean=new AddBean();
	public double getFirstNumber() {
		return firstNumber;
	}
	public void setFirstNumber(double firstNumber) {
		this.firstNumber = firstNumber;
	}
	public double getResult() {
		return result;
	}
	public void setResult(double result) {
		this.result = result;
	}
	public double getSecondNumber() {
		return secondNumber;
	}
	public void setSecondNumber(double secondNumber) {
		this.secondNumber = secondNumber;
	}
         //这里该方法要定义为String类型,返回的字符串就是在faces-config.xml中定义的navigation-rule -> navigation-case - > success,JSF也就是通过这个来找到result.jsp页面进行调度的.
	public String add()
	{
		result=addbean.add(firstNumber, secondNumber);
		return "success";
	}
        
}

(4)编写后台Bean
package com.langsin;

public class AddBean {
	public double add(double a,double b)
	{
		return a+b;
	}

}

(5)编写相加的jsp页面
    JSF跟strtus一样,有自己的一套tab library,它通过解析这些tag来实现对JSF程序的控制.目前,JSF有2套tab:jsf_core.tld和html_basic.tld,从名字上可以看出来,第一个主要是核心JSF程序使用的tag,包括view(所有的JSF程序都必须有的tag),loadBundle(资源相关),validator(校验相关)等等.第二个是web页面设计相关的的一些html组件tag,这些组件,可以组成普通或者复杂的web应用程序.
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>

<html>
<head>
	<title></title>
</head>
  
<body>
	<f:view>
	<h:form>
	<h:panelGrid columns="3">
	
	<h:outputLabel value="请输入第一个数字"/>
	
	<h:inputText id="firstNumber" value="#{mybean.firstNumber}"/>
	<h:message for="firstNumber"/>
		
	<h:outputLabel value="请输入第二个数字"/>
	
	<h:inputText id="secondNumber" value="#{mybean.secondNumber}"/>
	<h:message for="secondNumber"/>
	</h:panelGrid>
	<h:commandButton value="加" action="#{mybean.add}"/>
	</h:form>
	</f:view>
</body>
</html>

(6)编写显示结果的jsp页面
<%@ page language="java" pageEncoding="gbk"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<html>
<head>	
	<title></title>
</head>
  
<body>
	<f:view>
计算结果是:<h:outputText value="#{mybean.result}"/>
	</f:view>
</body>
</html>

(7)修改web.xml文件
    JSF是一个标准的web framework,是以Servlet为调度核心,因此,如果想正常运行JSF程序,必须把JSF作为servlet来运行,后缀名为:.faces
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
  <context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml</param-value>
  </context-param>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.faces</url-pattern>
  </servlet-mapping>
</web-app>

(8)添加JSF配置文件faces-config.xml
    JSF是作为Servlet来运行,也有自己的配置文件,这个文件中配置了JSF正确运行需要的一些信息,包括managed-bean(将JSF web页面中需要的bean以managed的方式配置起来,这样,就可以在web 页面中直接调用该bean 的属性和方法),navigation-rule(JSF页面之间的流转/调度配置).
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">

<faces-config >
	<managed-bean>
		<managed-bean-name>mybean</managed-bean-name>
		<managed-bean-class>com.langsin.BackBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	
	<navigation-rule>
		<from-view-id>/add.jsp</from-view-id>
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/result.jsp</to-view-id>
		</navigation-case>
	</navigation-rule>
</faces-config>

(9)O了,让“猫”跑起来!!!(注意:后缀以不是jsp,改为faces)
    这里提一下,JSF最主要的特性之一,事件驱动,就是通过html组件来体现的,在定义了一个按钮以后,只要定义一下它的action,就可以直接的将这个动作映射到后台的某个managed-bean的某个方法上,这样,大大减少了原来中间层的javascript调用,也就缩短了开发时间,并且,也减少了中间出错的几率.
  • JSFLangsin.rar (5.9 KB)
  • 描述: 附件中是本人做好的例子和JSF需要的jar包
  • 下载次数: 72
分享到:
评论
2 楼 tyshan 2009-06-07  
where is jsf_ri.jar

please send me one copy.

tyshan@sina.com

thanks
1 楼 dleastsun 2009-05-19  
能不能把jsf_ri.jar发给我  谢谢lixudong2008cn@163.com

相关推荐

    JSF Java Server Faces (JSF)框架

    JSF(Java Server Faces)技术为开发基于网络用户界面的Java开发者提供了标准的编程接口API以及标签库。就像Struts框架一样,JSF定义了一套JSF标签 JSF的全称  1、Joint Strike Fighter (JSF)  2、Java Server ...

    Manning-JSF Java Server Faces in Action (2005)

    ### Manning-JSF Java Server Faces in Action (2005) #### 标题解析与扩展知识点 **标题**:“Manning-JSF Java Server Faces in Action (2005)”明确指出本书是关于Java Server Faces(JSF)技术的一本指南书籍...

    JavaServer Faces 入门学习资料

    ### JavaServer Faces (JSF) 入门学习资料解析 #### JSF简介 JavaServer Faces (简称JSF),是Sun Microsystems公司(现为Oracle公司的一部分)于2004年3月发布的一种用于构建企业级Java Web应用的标准框架。JSF的...

    JAVASERVER FACES IN ACTION

    JavaServer Faces (JSF, or simply “Faces”) makes it easy to develop web applications by bringing support for rich, powerful user interface components (such as text boxes, list boxes, tabbed panes, ...

    Manning - JavaServer Faces JSF in Action.pdf

    通过《JavaServer Faces (JSF) in Action》这本书,读者可以深入理解JSF的工作原理,学习如何设计和实现高效的JSF应用,以及如何解决实际开发中遇到的问题。无论你是初学者还是经验丰富的开发者,都能从中受益。

    JavaServer Faces (JSF)

    JavaServer Faces (JSF) 是一种用于构建Java Web 应用程序的标准框架(是Java Community Process 规定的JSR-127标准)。它提供了一种以组件为中心的用户界面(UI)构建方法,从而简化了Java服务器端应用程序的开发。...

    JSF核心编程 第二版(含源码)(core JavaServer Faces 2ed)

    《JSF核心编程 第二版》是一本深入探讨JavaServer Faces (JSF)技术的专业书籍,作者通过详尽的讲解和实例,为读者揭示了JSF框架的核心概念和实际应用。这本书不仅涵盖了JSF的基本原理,还包含了最新的JSF 2.0版本的...

    JavaServer Faces核心编程(第3版) 源码

    JavaServer Faces(JSF)是Java平台上用于构建Web应用程序的官方标准框架,它提供了一种组件化、事件驱动的方式来创建用户界面。《JavaServer Faces核心编程(第3版)》是一本深入探讨JSF技术的专业书籍,源码的提供...

    JavaServer Faces核心编程 源码

    JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端框架,它简化了Web应用程序的开发,尤其在处理表单提交、页面导航和组件管理等方面。本资源为《JavaServer Faces核心编程(第3版)》一书的源...

    JavaServer Faces核心编程(第3版 中文完整版)

    《JavaServer Faces核心编程(第3版 中文完整版)》是Java开发领域的一本经典著作,主要聚焦于JavaServer Faces (JSF) 技术的深入理解和实践应用。JSF是Java EE平台中的一个用于构建用户界面的组件模型框架,它提供了...

    Java Server Faces编程

    内容简介:通过本书的学习,读者能够最大限度地应用Java Server Faces和创建专业的JSF程序,以实现快速构建Java wed应用的基本架构。书中首先对度层和相关技术进行了综述,接着介绍了如何编写并部署JSF应用程序,...

    jsf1.2 download javaserver faces

    JavaServer Faces(JSF)是Java平台上的一种用于构建用户界面的服务器端Web应用程序框架,它专注于简化开发和管理用户交互的复杂性。JSF 1.2是该框架的一个早期版本,发布于2006年,是JSF规范的第二版。在本文中,...

    JavaServer Faces核心编程第三版(PDF).rar

    《JavaServer Faces核心编程(第3版)》全面透彻地讲解JSF2.0,指导您驾轻就熟地掌握JSF 2.0的卓越功能。无论您是在Glassfish(或其他符合Java EE 6标准的应用服务器)上开发Java EE 6Web应用程序,还是在诸如Tomcat 6...

    JavaServer Faces in Action

    ### JavaServer Faces (JSF) 实战:关键技术与实践 #### 一、JavaServer Faces (JSF) 简介 JavaServer Faces (JSF) 是一个基于Java EE标准的服务器端用户界面组件框架,它提供了创建丰富且交互式的用户界面的能力...

Global site tag (gtag.js) - Google Analytics