posts - 2, comments - 2, trackbacks - 0, articles - 23
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

转帖:JSF入门之hello world

Posted on 2012-03-15 11:58 齐纳尔多 阅读(86) 评论(0)  编辑  收藏 所属分类: JSF
引用:http://liusuper.iteye.com/blog/214089
 JSF以MVC模式为基础,与Struts不同,JSF的目标是希望以一个与Swing相类似的方式来开发网页,因此,从JSF的结构图当中,他的核心概念不是页面,而是控件树,也就是说,当用户提交一个请求时,JSF会先将页面上的组件先转换为与Swing当中类似的,由容器和控件组成的控件树,然后数据和事件被设置到对应的控件上,然后以一种与Swing类似的方式,来处理后续的请求。控件树是整个JSF的核心,所有其他的一切一切都是围绕着这棵控件树展开的

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

   导入包:

 

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

 

定义一个javabean

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

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

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


只有注册用户登录后才能发表评论。


网站导航: