隨筆-14  評(píng)論-34  文章-0  trackbacks-0
          最近在做一個(gè)需要JSF和Spring整合的項(xiàng)目,之前不知道如何在后臺(tái)管理Bean獲取被Spring管理的業(yè)務(wù)類對(duì)象,現(xiàn)在解決了,可以跑起來(lái)了!

          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中需要使用業(yè)務(wù)類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;
                
            /**
                 * 業(yè)務(wù)類
                 
            */
                
            private UserService userService;
                
            /**
                 * 密碼
                 
            */
                
            private String password;

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

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


          posted on 2008-03-20 20:44 Jam Chan 閱讀(1953) 評(píng)論(0)  編輯  收藏 所屬分類: SSH整合
          主站蜘蛛池模板: 佛山市| 开阳县| 阳高县| 邮箱| 邓州市| 泰安市| 姜堰市| 中卫市| 平邑县| 阿勒泰市| 启东市| 江都市| 光泽县| 海宁市| 富裕县| 黄大仙区| 阳春市| 昭通市| 策勒县| 博客| 资中县| 浠水县| 确山县| 庆安县| 广南县| 德惠市| 钟山县| 南平市| 苏尼特右旗| 大渡口区| 丰顺县| 岳西县| 黄陵县| 沁水县| 兴山县| 大荔县| 金昌市| 改则县| 西充县| 道孚县| 留坝县|