日期:2014-05-16  浏览次数:20322 次

jsf-1-1:第一个jsf

?

jsf-impl.jar
??? * jsf-api.jar
??? * commons-digester.jar
??? * commons-collections.jar
??? * commons-beanutils.jar
??? * jstl.jar
??? * standard.jar

?

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-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:

UserBean.java
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:

faces-config.xml
<?xml version="1.0"?>
 <!DOCTYPE faces-config PUB