<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整合
    主站蜘蛛池模板: 亚洲熟妇av一区二区三区| 成人亚洲综合天堂| 亚洲黄色免费电影| 伊人久久免费视频| 亚洲视频在线播放| 182tv免费视视频线路一二三| 久久久久亚洲精品影视| 毛片无码免费无码播放| 18亚洲男同志videos网站| 最近中文字幕高清免费中文字幕mv| 亚洲国产日韩一区高清在线| 7m凹凸精品分类大全免费| 亚洲熟妇av一区| 成人免费AA片在线观看| 亚洲国产精品无码久久98| 国产在线a不卡免费视频| 性生大片视频免费观看一级| 久久夜色精品国产亚洲av| 日本免费电影一区二区| 亚洲电影在线播放| 午夜dj在线观看免费视频| 亚洲av无码日韩av无码网站冲 | 免费人成在线观看视频播放| 一区二区三区精品高清视频免费在线播放 | 亚洲av女电影网| 午夜福利不卡片在线播放免费| 亚洲精品蜜夜内射| 亚洲精品tv久久久久| 免费女人高潮流视频在线观看 | 成人免费无码大片A毛片抽搐| 精品国产日韩亚洲一区在线| 在线亚洲精品自拍| 99在线视频免费| 亚洲精品日韩一区二区小说| 亚洲中文字幕日产乱码高清app | 蜜桃精品免费久久久久影院 | 国产午夜无码精品免费看| 亚洲综合色丁香婷婷六月图片| 亚洲精品tv久久久久久久久久| 99久久综合精品免费| 特级av毛片免费观看|