Java学习者论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

恭喜Java学习者论坛(https://www.javaxxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,购买链接:点击进入购买VIP会员
JAVA高级面试进阶视频教程Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程

Go语言视频零基础入门到精通

Java架构师3期(课件+源码)

Java开发全终端实战租房项目视频教程

SpringBoot2.X入门到高级使用教程

大数据培训第六期全套视频教程

深度学习(CNN RNN GAN)算法原理

Java亿级流量电商系统视频教程

互联网架构师视频教程

年薪50万Spark2.0从入门到精通

年薪50万!人工智能学习路线教程

年薪50万!大数据从入门到精通学习路线年薪50万!机器学习入门到精通视频教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程 MySQL入门到精通教程
查看: 285|回复: 0

[jsf学习]Spring+JSF示例

[复制链接]
  • TA的每日心情
    开心
    2021-3-12 23:18
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2014-10-9 23:49:21 | 显示全部楼层 |阅读模式
    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";
            }
        }
    }



       

         
      三、       配置文件
          
       1.WEB-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
    >
      


       注意我使用中文注释的地方。
         
        2.WEB-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
    >


      3.WEB-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/

      
      
       
       

         
       

         
       
      
    复制代码
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|Java学习者论坛 ( 声明:本站资料整理自互联网,用于Java学习者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2024-6-19 12:39 , Processed in 0.456028 second(s), 50 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表