<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片永久免费| 亚洲中文字幕AV每天更新| 最近2019中文免费字幕| 在线观看亚洲AV每日更新无码| 免费无码肉片在线观看| 亚洲色偷偷综合亚洲AV伊人蜜桃| 午夜dj免费在线观看| 少妇亚洲免费精品| 国产成人麻豆亚洲综合无码精品| a级毛片免费全部播放无码| 亚洲国产AV无码专区亚洲AV| 日韩人妻一区二区三区免费| 亚洲人成777在线播放| 成人一a毛片免费视频| 免费视频精品一区二区| 亚洲第一AAAAA片| 日本免费人成在线网站| 亚洲AV无码专区在线观看成人| 国产免费人成在线视频| 国产无限免费观看黄网站| 亚洲av日韩av高潮潮喷无码| 国产人成免费视频网站| 精品亚洲视频在线| 亚洲动漫精品无码av天堂| 97人伦色伦成人免费视频| 一区二区3区免费视频| 在线观看亚洲一区二区| 日日夜夜精品免费视频| 免费网站看av片| 涩涩色中文综合亚洲| 亚洲日韩在线观看免费视频| 免费国产污网站在线观看15| 亚洲aⅴ无码专区在线观看春色| 亚洲精品美女久久久久99| 一二三四在线播放免费观看中文版视频 | 无码乱人伦一区二区亚洲一| 久久久久久久免费视频|