jsf-impl.jar
* jsf-api.jar
* commons-digester.jar
* commons-collections.jar
* commons-beanutils.jar
* jstl.jar
* standard.jar
<?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-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>
在上面的定义中,我们将所有.faces的请求交由FaceServlet来处理,FaceServlet会唤起相对的.jsp网页,例如请求是/index.faces的话,则实际上会唤起/index.jsp网页,完成以上的配置,您就可以开始使用JSF了。
<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2628" dc:identifier="http://www.javaworld.com.tw/confluence/pages/viewpage.action?pageId=2628" dc:title="简介JSF" trackback:ping="http://www.javaworld.com.tw/confluence/rpc/trackback/2628"/> </rdf:RDF> --><!-- Root decorator: all decisions about how a page is to be decorated via the inline decoration begins here. --><!-- Switch based upon the context. However, for now, just delegate to a decorator identified directly by the context. -->
先看看应用程序开发人员要作些什么事,我们撰写一个简单的JavaBean:
package onlyfun.caterpillar; public class UserBean { private String name; public void setName(String name) { this.name = name; } public String getName() { return name; } }
这个Bean将储存使用者的名称,编译好之后放置在/WEB-INF/classes下。
接下来设计页面流程,我们将先显示一个登入网页/pages/index.jsp,使用者填入名称并送出窗体,之后在/pages/welcome.jsp中显示Bean中的使用者名称与欢迎讯息。
为了让JSF知道我们所设计的Bean以及页面流程,我们定义一个/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>/pages/index.jsp</from-view-id> <navigation-case> <from-outcome>login</from-outcome> <to-view-id>/pages/welcome.jsp</to-view-id> </navigation-case> </navigation-rule> <managed-bean> <managed-bean-name>user</managed-bean-name> <managed-bean-class> onlyfun.caterpillar.UserBean </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>
在<navigation-rule>中,我们定义了页面流程,当请求来自<from-view- id>中指定的页面,并且指定了<navigation-case>中的<from-outcome>为login时,则会将请求导向至<to-view-id>所指定的页面。
在<managed-bean>中我们可以统一管理我们的Bean,我们设定Bean对象的存活范围是session,也就是使用者开启浏览器与程序互动过程中都存活。
接下来要告诉网页设计人员的信息是,他们可以使用的Bean名称,即<managed-bean-name>中设定的名称,以及上面所定义的页面流程。
网页设计人员
首先网页设计人员撰写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=Big5"%> <html> <head> <title>第一个JSF程序</title> </head> <body> <f:view> <h:form> <h3>请输入您的名称</h3> 名称: <h:inputText value="#{user.name}"/><p> <h:commandButton value="送出" action="login"/> </h:form> </f:view> </body> </html>
我们使用了JSF的core与html标签库,core是有关于UI组件的处理,而html则是有关于HTML的进阶标签。
<f:view>与<html>有类似的作用,当您要开始使用JSF组件时,这些组件一定要在<f: view>与</f:view>之间,就如同使用HTML时,所有的标签一定要在<html>与< /html>之间。
html卷标库中几乎都是与HTML卷标相关的进阶卷标,<h:form>会产生一个窗体,我们使用<h: inputText>来显示user这个Bean对象的name属性,而<h:commandButton>会产生一个提交按钮,我们在action属性中指定将根据之前定义的login页面流程中前往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>
这个页面没什么需要解释的了,如您所看到的,在网页上没有程序逻辑,网页设计人员所作的就是遵照页面流程,使用相关名称取出数据,而不用担心实际上程序是如何运作的。
接下来启动Container,连接上您的应用程序网址,例如:http://localhost:8080/jsfDemo/pages/index.faces,填入名称并送出窗体
相关推荐
精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1,第一部分,。将三部分一起下载完后再解压第一部分!
精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1.第3部分。三部分全下完再解压第一部分!
Maven-EJB-JPA-JSF-Primefaces 用 Java 与 Maven、EJB、JPA、JSF 和 Primefaces 一起制作的示例项目。 我已经做了 5 年多的 Java Web 开发人员。 但是我只接触过像XSLT这样的较差的框架,它只读取Servlet发送的XML...
精通JSF-基于EJB Hibernage Spring整合开发与项目实践代码.part1.第二部分。三部分全下完再解压第一部分!
JSF第一步--JSF+Spring+ Hibernate+AJAX编程实践 试读
jsf第一步源码ch1-12
第一个JSF程序,初学JSF者必备,jsf架包 jsf实例
JSF第一步 pdf格式
JSF第一个应用
这是在 eclipse+ tomcat7.0 +jdk1.7环境下编写的JSF第一个程序。可直接在eclipse下使用tomcat7.0服务器直接运行!
《jsf第一步》第13章,源码。
jsf-area-checker 网络第三功课(2门课程) :shushing_face: 基于JavaServer Faces框架的Web应用程序。 包含facelets-页面,管理bean和数据库。
jsf第一步源码ch14-21
第1部分-增强JSF页面的外观(CSS、JavaScript和JSF联合打造 Ajax应用程序).zip
总共分六部分,这是第2部分 注:要将所有小节及其才可解压缩出当前部分
JSF入门教材 --------------------------------- JavaServer Faces 1_2 入门,第 1 部分 构建基本应用程序 JavaServer Faces 1_2 入门,第 1 部分 构建基本应用程序 JSF技术入门教材手册.rar
这是2个压缩包中的第二个,请一并将第一个下载后,随便解压其中一个即可。 如果只希望下载其中一部分即可阅读,可下载另一个pdf: http://download.csdn.net/detail/oqqsun12345678/5215337 内容简介 出版日期: ...
总共分六部分,这是第1部分 注:要将所有小节及其才可解压缩出当前部分
《jsf第一步》书中最完整的例子,演示了一个办公用品管理软件的例子,库文件太大,没有上传,大家自己吧,呵呵