<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 310, comments - 6939, trackbacks - 0, articles - 3
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    Spring+JSF示例

    Posted on 2007-11-13 23:14 詩特林 閱讀(5528) 評論(7)  編輯  收藏 所屬分類: JSF
     

    Spring+JSF示例

    JSF本身提供了強大的Bean管理功能。但Spring作為一種輕量的容器,在管理Bean方面有著不可替代的優勢,使用起來很方便。在Spring流行的今天,怎么能少了在JSF中整合Spring呢?下面的示例比較簡單,但也能清楚的表達如何將JSF+Spring兩者互相整合起來。

    整個示例,通過輸入頁面輸入特定的字符串,在后面查找此字符串對應的數值,然后展現給客戶,如果沒有找到則提示錯誤。



    一、      
    頁面

     

    1.輸入頁面:stockInput.jsp

    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>

    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

    <f:view>
        
    <html>
            
    <head>
                
    <title>字符輸入頁面</title>
            
    </head>
            
    <body>
                
    <h:form id="stockForm">

                    
    <h1>
                        請輸入一個字符串,如ABC或DEF或GHI或JKL
                    
    </h1>

                    
    <p>
                        
    <h:inputText id="stockSymbolInput" value="#{stockBean.symbolName}"
                            required
    ="true">
                        
    </h:inputText>
                    
    </p>

                    
    <h:commandButton id="stockSubmit" type="submit" value="提交"
                        action
    ="#{stockBean.findStockValue}">
                    
    </h:commandButton>

                
    </h:form>

            
    </body>
        
    </html>
    </f:view>

     

    2.輸出頁面:stockOutputFailure.jsp

    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>

    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    <html>
        
    <head>
            
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            
    <title>取得字符串所對應的值</title>
        
    </head>
        
    <body>

            
    <f:view>
                
    <h1>
                    所輸入的字符串
                    
    <h:outputText value="#{stockBean.symbolName}">
                    
    </h:outputText>
                    對應的值是
                    
    <h:outputText value="#{stockBean.symbolValue}">
                    
    </h:outputText>
                
    </h1>
            
    </f:view>

        
    </body>
    </html>

     

    3.錯誤處理頁面:stockOutputFailure.jsp

    <%@page contentType="text/html"%>
    <%@page pageEncoding="UTF-8"%>

    <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
    <%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">

    <html>
        
    <head>
            
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            
    <title>錯誤頁面</title>
        
    </head>
        
    <body>

            
    <f:view>
                
    <h1>
                    所查找的字符串
                    
    <h:outputText value="#{stockBean.symbolName}">
                    
    </h:outputText>
                    不存在,請再次查找
    !
                
    </h1>
            
    </f:view>

        
    </body>
    </html>

     

     

    二、       后臺處理Bean

     StockValueFetcher.java

    package com.sterning.springjsf;

    import java.util.*;

    public class StockValueFetcher {

        
    private Map<String, String> stockSymbolsAndValues;

        
    private String symbolName;
        
    private String symbolValue;

        
    public StockValueFetcher() {
            stockSymbolsAndValues 
    = new HashMap<String, String>();
            stockSymbolsAndValues.put(
    "ABC""10");
            stockSymbolsAndValues.put(
    "DEF""20");
            stockSymbolsAndValues.put(
    "GHI""30");
            stockSymbolsAndValues.put(
    "JKL""40");
        }


        
    public String getSymbolName() {
            
    return symbolName;
        }


        
    public void setSymbolName(String symbolName) {
            
    this.symbolName = symbolName;
        }


        
    public String getSymbolValue() {
            
    return symbolValue;
        }


        
    public void setSymbolValue(String symbolValue) {
            
    this.symbolValue = symbolValue;
        }


        
    public String findStockValue(){
            
    boolean symbolFound = stockSymbolsAndValues.containsKey(symbolName);
            
    if (symbolFound){
                symbolValue 
    = stockSymbolsAndValues.get(symbolName);
                
    return "stockOutputSuccess";
            }
    else{
                
    return "stockOutputFailure";
            }

        }

    }


        

    三、       配置文件

    1WEB-INF/faces-config.xml

    <?xml version='1.0' encoding='UTF-8'?>

    <faces-config version="1.2" 
    xmlns
    ="http://java.sun.com/xml/ns/javaee" 
    xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation
    ="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
    >

    <application>
        
    <variable-resolver>
            org.springframework.web.jsf.DelegatingVariableResolver
        
    </variable-resolver>
    </application>

    <!--  下面的代碼在沒有使用Spring時起一樣的作用
    <managed-bean>
        <managed-bean-name>stockBean</managed-bean-name>
            <managed-bean-class>
                com.sterning.springjsf.StockValueFetcher
            </managed-bean-class>
        <managed-bean-scope>request</managed-bean-scope>    
    </managed-bean>
    -->
    <navigation-rule>
        
    <description>Navigation from the hello page.</description>
        
    <from-view-id>/stockInput.jsp</from-view-id>
        
    <navigation-case>
            
    <from-outcome>stockOutputSuccess</from-outcome>
            
    <to-view-id>/stockOutputSuccess.jsp</to-view-id>
        
    </navigation-case>
        
    <navigation-case>
            
    <from-outcome>stockOutputFailure</from-outcome>
            
    <to-view-id>/stockOutputFailure.jsp</to-view-id>
        
    </navigation-case>    
    </navigation-rule>

    </faces-config> 

     

    注意我使用中文注釋的地方。

     

    2WEB-INF/applicationContext.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
    "http://www.springframework.org/dtd/spring-beans.dtd"
    >

    <beans>

    <bean id="stockBean"
    class
    ="com.sterning.springjsf.StockValueFetcher">
    </bean>
     

     3WEB-INF/web.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
        xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation
    ="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
    >

        
    <listener>
            
    <listener-class>
                org.springframework.web.context.ContextLoaderListener
            
    </listener-class>
        
    </listener>

        
    <context-param>
            
    <param-name>contextConfigLocation</param-name>
            
    <param-value>/WEB-INF/applicationContext.xml</param-value>
        
    </context-param>

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

        
    <session-config>
            
    <session-timeout>30</session-timeout>
        
    </session-config>

        
    <welcome-file-list>
            
    <welcome-file>faces/stockInput.jsp</welcome-file>
        
    </welcome-file-list>
    </web-app>

     


     

    參考文獻:http://www.javabeat.net/articles/2007/10/integrating-spring-and-jsf/


    評論

    # re: Spring+JSF示例[未登錄]  回復  更多評論   

    2007-11-14 08:56 by 阿蜜果
    蠻好的例子,多謝了,LZ

    # re: Spring+JSF示例  回復  更多評論   

    2007-11-14 13:17 by BeanSoft
    不錯! 收藏了!

    # re: Spring+JSF示例  回復  更多評論   

    2007-12-13 20:27 by OpenBund
    有沒有連接mysql進行查詢並顯示數據的代碼

    # re: Spring+JSF示例  回復  更多評論   

    2008-06-25 09:56 by ddd
    我從你的代碼好像找不到spring管理bean的地方

    # re: Spring+JSF示例  回復  更多評論   

    2008-08-29 15:28 by young_suse
    在spring配置文件里沒有指定Bean的有效范圍request

    # re: Spring+JSF示例  回復  更多評論   

    2011-06-29 20:22 by zlu
    寫的不錯

    # re: Spring+JSF示例  回復  更多評論   

    2014-08-29 10:50 by junjielee
    faces-config.xml沒有managed-bean???
    主站蜘蛛池模板: 亚洲AV无一区二区三区久久| 特级毛片aaaa免费观看| 国产偷国产偷亚洲清高APP| 日本免费中文字幕| 亚洲精品视频免费| 亚洲国产精品无码第一区二区三区| 2021在线永久免费视频| 亚洲AV无码久久精品色欲| 波多野结衣免费在线| 亚洲精品第五页中文字幕| 99国产精品免费观看视频| 亚洲人成依人成综合网| 男人的天堂网免费网站| 亚洲一区二区无码偷拍| 女人18毛片特级一级免费视频| 亚洲春色在线观看| www.黄色免费网站| 亚洲另类自拍丝袜第1页| 国产四虎免费精品视频| 手机永久免费的AV在线电影网| 亚洲美女一区二区三区| 黄页网站免费在线观看| 国产精品高清视亚洲精品| 毛片在线看免费版| 久久精品国产亚洲av品善| 亚洲av日韩av无码黑人| 精品国产sm捆绑最大网免费站 | 成人五级毛片免费播放| a毛片全部播放免费视频完整18| 亚洲伊人久久精品影院| 久久免费精品一区二区| 亚洲日韩乱码中文无码蜜桃| 亚洲精品网站在线观看不卡无广告| 久久久久久精品免费免费自慰| 国产vA免费精品高清在线观看| 亚洲区小说区图片区QVOD| 国产日产成人免费视频在线观看| 免费国产黄网站在线看| 久久青青成人亚洲精品| 亚洲国产精品一区二区第一页免| 18禁超污无遮挡无码免费网站|