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

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

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

    隨筆-14  評論-34  文章-0  trackbacks-0
    最近在做一個需要JSF和Spring整合的項目,之前不知道如何在后臺管理Bean獲取被Spring管理的業務類對象,現在解決了,可以跑起來了!

    1. web.xml
       1 <?xml version="1.0"?>
       2 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
       3   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       4   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
       5     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
       6   version="2.4">
       7  
       8   <display-name>example</display-name>
       9 
      10     <context-param>    
      11         <param-name>contextConfigLocation</param-name>
      12         <param-value>/WEB-INF/classes/applicationContext.xml</param-value>
      13     </context-param>
      14 
      15     <listener>
      16       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
      17     </listener>

      18 
      19     <servlet>
      20         <display-name>FacesServlet</display-name>
      21         <servlet-name>FacesServlet</servlet-name>
      22         <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
      23         <load-on-startup>0</load-on-startup>
      24     </servlet>
      25 
      26     <servlet-mapping>
      27       <servlet-name>FacesServlet</servlet-name>
      28       <url-pattern>*.faces</url-pattern>
      29     </servlet-mapping>
      30      
      31 </web-app>

    2. faces-config.xml
       1 <?xml version='1.0' encoding='UTF-8'?>
       2 <!DOCTYPE faces-config PUBLIC
       3 "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN"
       4 "http://java.sun.com/dtd/web-facesconfig_1_1.dtd">
       5 <faces-config>
       6     <application>
       7         <variable-resolver>
       8             org.springframework.web.jsf.DelegatingVariableResolver
       9         </variable-resolver>
      10     </application>


      12 <managed-bean>
      13   <managed-bean-name>infoBean</managed-bean-name>
      14   <managed-bean-class>
      15       com.jam.managedbeans.InfoBean
      16   </managed-bean-class> 
      17   <managed-bean-scope>request</managed-bean-scope>
      18 </managed-bean>
      19 
      20 </faces-config>


    3. InfoBean.java
      假如InfoBean中需要使用業務類UserService的方法,而UserService交由Spring管理(id="userService"),InfoBean可以這樣寫:
      package com.jam.managedbeans;

      import java.util.Map;

      import javax.faces.context.ExternalContext;
      import javax.faces.context.FacesContext;

      import org.springframework.context.ApplicationContext;
      import org.springframework.web.jsf.FacesContextUtils;

      import com.jam.hibeinate.po.Bloguser;
      import com.jam.service.UserService;

      /**
       * 
      @author Jam Chan
       * 
       
      */
      public final class InfoBean extends Object {

          
      /**
           * 用戶名
           
      */
          
      private String userName;
          
      /**
           * 業務類
           
      */
          
      private UserService userService;
          
      /**
           * 密碼
           
      */
          
      private String password;

          
      /**
           * 登陸驗證
           * 
           * 
      @return
           
      */
          
      public String loginValidate() {
              FacesContext facesContext 
      = FacesContext.getCurrentInstance();
              ExternalContext extnContext 
      = facesContext.getExternalContext();
              // POJO類
              Bloguser objUser 
      = new Bloguser();
              objUser.setUsername(getUserName());
              objUser.setPassword(getPassword1());
              
      // 從Spring中獲取需要的業務類UserService,我就是在這里被卡住,終于OK了
              ApplicationContext appContext = FacesContextUtils.getWebApplicationContext(facesContext);
              userService 
      = (UserService) appContext.getBean("userService"
      );

              
      // 驗證用戶
              boolean result = userService.loginValidate(objUser);
              
      // 獲取SessionMap
              Map sessionMap = extnContext.getSessionMap();
              
      if (result) { // 登陸成功
                  /* 把用戶名設置在Session中 */
                  sessionMap.put(
      "userName", getUserName());
                  
      return "success";
              } 
      else { // 登錄失敗
                  /* 清空session */
                  
      if (sessionMap.containsKey("userName")) {
                      sessionMap.remove(
      "userName");
                  }
                  
      return "failed";
              }
          }
          // setter getter省略
      暫時寫到這,可能還要查漏補缺,發現問題繼續加上!


    posted on 2008-03-20 20:44 Jam Chan 閱讀(1949) 評論(0)  編輯  收藏 所屬分類: SSH整合
    主站蜘蛛池模板: 亚洲v高清理论电影| 精品国产香蕉伊思人在线在线亚洲一区二区| 国产亚洲成人在线播放va| 黄色a三级免费看| heyzo亚洲精品日韩| 国产综合成人亚洲区| 四虎影库久免费视频| 免费人成网站永久| 久久久久无码专区亚洲av | 亚洲欧洲日产国产综合网| 国产猛男猛女超爽免费视频| 亚洲AV无码一区二区三区DV| 91精品免费观看| 亚洲一区精彩视频| 国产免费av一区二区三区| 一区在线免费观看| 久久精品国产96精品亚洲| 国产91色综合久久免费分享| 亚洲首页国产精品丝袜| 国产免费牲交视频| 成在线人免费无码高潮喷水| 亚洲av女电影网| 成人免费视频网址| 一区二区三区在线免费| 亚洲精品中文字幕乱码| 热99re久久精品精品免费| 产传媒61国产免费| 亚洲男人第一av网站| 国产精品免费一级在线观看| 一区二区三区免费看| 亚洲黄色在线观看网站| 小小影视日本动漫观看免费| a级毛片毛片免费观看永久| 亚洲国产av美女网站| 亚洲国产成人久久综合区| 精品一卡2卡三卡4卡免费视频| 精品亚洲成A人无码成A在线观看| 亚洲精品成人片在线观看| **俄罗斯毛片免费| 一级做α爱过程免费视频| 亚洲精品第一国产综合精品|