`
xiaophai
  • 浏览: 9050 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

JSF入门之hello world

阅读更多
  JSF以MVC模式为基础,与Struts不同,JSF的目标是希望以一个与Swing相类似的方式来开发网页,因此,从JSF的结构图当中,他的核心概念不是页面,而是控件树,也就是说,当用户提交一个请求时,JSF会先将页面上的组件先转换为与Swing当中类似的,由容器和控件组成的控件树,然后数据和事件被设置到对应的控件上,然后以一种与Swing类似的方式,来处理后续的请求。控件树是整个JSF的核心,所有其他的一切一切都是围绕着这棵控件树展开的

      JSF的处理核心是控件树,他会先将页面上所声明的控件转换为一棵控件树,后续的操作将在这颗控件树上进行。为了提高性能,系统会为之前生成的控件树提供缓存。Restore View的工作就是在缓存当中查找是否存在之前已经生成好的控件树,如果没有,则根据页面的内容,重新生成。

   导入包:

Java代码
jsf-impl.jar  
   * jsf-api.jar  
   * commons-digester.jar  
   * commons-collections.jar  
   * commons-beanutils.jar  
   * jstl.jar  
   * standard.jar 

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

web.xml配置



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> 

<?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> 定义一个javabean



Java代码
package onlyfun.caterpillar;  
 
public class UserBean {  
    private String name;  
 
    public void setName(String name) {  
        this.name = name;  
    }  
 
    public String getName() {  
        return name;  
    }  


package onlyfun.caterpillar;

public class UserBean {
    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }
}  定义一个/WEB-INF/faces-config.xml像struts中的struts-config.xml文件一样,实现跳转:



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> 

<?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> index.jsp



Html代码
<%@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> 

<%@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> welcome.jsp


Java代码
<STRONG><%@ 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></STRONG> 

<%@ 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>




然后http://localhost:8080/jsfDemo/pages/index.faces ,

分享到:
评论
Global site tag (gtag.js) - Google Analytics