隨筆-112  評論-73  文章-0  trackbacks-0

          ????最近在準備一個項目,經過比較最終選JSF1.2 +Spring2.0 +Hibernate3.2的框架,至于為什么我就不說了,每個都有自己的看法。下面進入正題。

          ????開發工具是MyEclipse5.5 支持JEE5的開發,其實用到JEE5的功能可能很少或者沒有,但即然有還是選擇先進的技術吧。JSF1.2暫時選擇SUN的實現,以后要可以隨時換成MyFaces的(現在MyFaces是1.1.5吧?),Spring是2.0.5版。使用Maven2來管理Jar包和生命周期,用著也是很方便的,比ANT要少寫不少配置的東西。而且有專門的E clipse下的插件。

          ????開始操作吧。

          1. 新建工程

          在MyEclipse下新建一個Web工程。注意J2EE服務器選擇J2EE5.0 ,然后點完成。以前的MyEclise新建Web工程很慢,有時會死機,現在好多了。已經好長時間沒用MyEclipse了。

          1. 加入JSF

          在工程目錄上點右鍵,在菜單中選擇MyEclipse->Add JSF Capabilities…會出現一個窗口,如圖

          Faces-config.xml 文件放到/WEB-INF/目錄下,Faces Servlet name 保持不變是 Faces Servlet即可,我將URL pattern 改成了*.jsf ,不改也可以只是要注意后面涉及到訪問JSF的都要用*.faces。

          現在JSF就配置好了,主要是web.xml中的一個Servlet和faces-config.xml。

          1. 加入Spring

          用MyEclipse也能夠象加入JSF一樣加入Spring 的支持,但是我們要用MAVEN2來管理JAR包,所以就不用這種方式加入。在工程點上右鍵,在彈出的菜單中選擇Maven2然后選擇endable。(要求你得先正確安裝Maven2Eclipse的插件, 插件的更新地址是:http://m2eclipse.codehaus.org/update/,多數是不成功,得找一個正確的Eclipse版本,我也是換了好多個版本)。

          在彈出的窗口中輸入要求的信息,主要是packaging 選擇war。

          完成后工程根目錄就會新建一個pom.xml 文件。在文件上右鍵,maven2->add dependency 來加入需要的jar包。看下面完整的pom.xml(注意:編輯完pom.xml之后編譯工程就要聯網下載jar包了。)

          ?

          在WEB-INF/目錄下一個名為applicationContext.xml的文件,因為了Spring啟動時會自己在這個目錄下查找這個文件。內容如下:

          <?xml version="1.0" encoding="UTF-8"?>

          <beans xmlns=http://www.springframework.org/schema/beans xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

          ????????????

          </beans>

          只是一個沒有任何配置的文件。

          1. JSF結合Spring

            Spring 加入后,得讓它能夠和JSF結合起來工作,也就是在JSF中能夠訪問Spring中的bean,只需要在web.xml文件中加入下面一段:

          ????<listener>

          ????????<listener-class>

          ????????????org.springframework.web.context.ContextLoaderListener

          ????????</listener-class>

          ????</listener>

          這樣就可以訪問Spring 中的bean 了。

          ????例如:

          ????????Faces-confg.xml中的一段代碼

          ????<managed-bean>

          ????????<managed-bean-name>UserBean</managed-bean-name>

          ????????<managed-bean-class>

          ????????????cn.xiangyunsoft.web.jsf.beans.UserBean

          ????????</managed-bean-class>

          ????????<managed-bean-scope>session</managed-bean-scope>

          ????????<managed-property>

          ????????????<property-name>userDao</property-name>

          ????????????<value>#{userDao}</value>

          ????????</managed-property>

          ????</managed-bean>

          ????其中#{userDao} 這個就是訪問Spring中的bean .

          ????applicationContext.xml

          ????<bean id="userDao"

          ????????class="cn.xiangyunsoft.busniess.dao.impl.UserDaoImpl">

          ????????……

          ????</bean>

          ????

          1. ????加入Hibernate3

            在pom.xml文件中加入依賴包。看后面完整的pom.xml

          applicationContext.xml文件加入下面代碼

          ????<bean id="XYSDataSource"

          ????????class="org.apache.commons.dbcp.BasicDataSource">

          ????????<property name="driverClassName"

          ????????????value="net.sourceforge.jtds.jdbc.Driver">

          ????????</property>

          ????????<property name="url"

          ????????????value="jdbc:jtds:sqlserver://localhost:1433/erpdata">

          ????????</property>

          ????????<property name="username" value="sa"></property>

          ????????<property name="password" value=""></property>

          ????</bean>

          ????<bean id="HibernateSessionFactory"

          ????????class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

          ????????<property name="dataSource">

          ????????????<ref bean="XYSDataSource" />

          ????????</property>

          ????????<property name="hibernateProperties">

          ????????????<props>

          ????????????????<prop key="hibernate.dialect">

          ????????????????????org.hibernate.dialect.SQLServerDialect

          ????????????????</prop>

          ????????????</props>

          ????????</property>

          ????</bean>

          第一個bean XYSDataSource是設置數據源,也可以把它換成JNDI方式由服務器管理的數據源。

          第二個bean HibernateSessionFactory是設置HibernateSession工廠,可以通過Spring bean 來訪問Hibernate session.因為使用annotations方式配置hibernate,所以連hibernate.cfg.xml 都不用了!

          1. 完整pom.xml

          <?xml version="1.0" encoding="UTF-8"?><project>

          <modelVersion>4.0.0</modelVersion>

          <groupId>cn.xiangyunsoft</groupId>

          <artifactId>XI</artifactId>

          <packaging>war</packaging>

          <version>0.0.1</version>

          <description></description>

          <dependencies>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-core</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-support</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-hibernate3</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-aop</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-jpa</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-jms</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring-jca</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.springframework</groupId>

          <artifactId>spring</artifactId>

          <version>2.0.5</version>

          </dependency>

          <dependency>

          <groupId>org.hibernate</groupId>

          <artifactId>hibernate-annotations</artifactId>

          <version>3.2.1.ga</version>

          </dependency>

          <dependency>

          <groupId>commons-dbcp</groupId>

          <artifactId>commons-dbcp</artifactId>

          <version>1.2.2</version>

          </dependency>

          </dependencies>

          </project>

          好了。所有的配置都完成了。現在他們可以好好的相處了。就差加點代碼讓它們工作了。過兩天會把完整的代碼發上來。

          還有,JSF+Spring+hibernate最少需要那些Spring的包還沒試。誰知道可以知會一下。現在差不多是都加上了。

          posted on 2007-05-24 15:46 Libo 閱讀(5461) 評論(16)  編輯  收藏

          評論:
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-05-24 16:58 | 三告習習
          把排版弄好些吧
          這樣子看起來挺吃力的哦
          比如,xml文件可以用“插入代碼”,那里可以選擇xml格式的  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-05-24 18:46 | 魚腸劍
          發上來才看出來排版比較亂.我是用Word發的.而且是沒有圖.不知道大家都是用什么來寫BLOG.怎么備份BLOG.  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-05-24 19:58 | Thomas
          要開始的項目,也用jsf+hibernate+spring,有機會,交流交流。  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-05-24 21:52 | Druze.libo
          使用myfaces,別忘了用tomahawk和sandbox  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-05-25 07:45 | 布衣郎
          光一個jsf是不夠的,還需要faceslet,ajax4jsf,richfaces的支持。夠你忙乎一段時間的。  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-05-25 08:22 | lgx522
          MyEclipse是D版吧。既然開源就開源到底,還是用wtp和FacesIDE這類的東西重新架一次吧。  回復  更多評論
            
          # 用Myface里的tomahawk和facelets吧!!! 2007-05-26 19:36 | qq-445104284
          我已經試用過JSF1.2,它解決了與JSP的兼容問題,但組件用起來遠不如Tomahawk,比如動態樹形菜單,HTML編輯器,文件上傳.這些Tomahawk做得很好!但tomahawk是基于JSF1.1的,與JSP不兼容,怎么辦?所以,引入了Facelets.Facelets很好得解決了JSF與JSP的兼容問題,另外Facelets引入了模版的技術-XHTML,這個東西要比Struts的Tiles好用得多.建議大家看一下那本core of jsf.掌握好JSF1.1.
            還望多多指教,我的qq:445104284.  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-06-06 05:09 | chinaboy
          對你的文章很感興趣,你的后續什莫時候發表?  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 [未登錄] 2007-08-13 14:11 | wzjin
          知道配置也沒有用!  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2007-10-26 10:18 | 中華信鴿
          不錯。  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2008-06-11 23:56 | gembin
          RichFaces3.2.0+Spring2.5.4 +Hibernate3.2 怎么配置

          我的 BackingBean Setter方法里設的值總是 NULL  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2008-06-12 00:03 | gembin
          <context-param>
          <param-name>javax.faces.STATE_SAVING_METHOD</param-name>
          <param-value>client</param-value>
          </context-param>
          <context-param>
          <param-name>org.richfaces.SKIN</param-name>
          <param-value>blueSky</param-value>
          </context-param>
          <context-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>/WEB-INF/applicationContext.xml</param-value>
          </context-param>
          <listener>
          <listener-class>
          org.springframework.web.context.ContextLoaderListener
          </listener-class>
          </listener>
          <filter>
          <display-name>Ajax4jsf Filter</display-name>
          <filter-name>ajax4jsf</filter-name>
          <filter-class>org.ajax4jsf.Filter</filter-class>
          </filter>
          <filter-mapping>
          <filter-name>ajax4jsf</filter-name>
          <servlet-name>Faces Servlet</servlet-name>
          <dispatcher>REQUEST</dispatcher>
          <dispatcher>FORWARD</dispatcher>
          <dispatcher>INCLUDE</dispatcher>
          </filter-mapping>
          <!--servlet>
          <servlet-name>spring</servlet-name>
          <servlet-class>
          org.springframework.web.servlet.DispatcherServlet
          </servlet-class>
          <load-on-startup>2</load-on-startup>
          </servlet-->
          <!-- Faces Servlet -->
          <servlet>
          <servlet-name>Faces Servlet</servlet-name>
          <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
          </servlet>

          <!-- Faces Servlet Mapping -->
          <servlet-mapping>
          <servlet-name>Faces Servlet</servlet-name>
          <url-pattern>*.jsf</url-pattern>
          </servlet-mapping>
          <application>
          <variable-resolver>
          org.springframework.web.jsf.DelegatingVariableResolver
          </variable-resolver>
          <!-- locale-config>
          <default-locale>en</default-locale>
          <supported-locale>en</supported-locale>
          <supported-locale>es</supported-locale>
          </locale-config>
          <message-bundle>messages</message-bundle-->
          </application>  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2008-06-12 19:07 | Libo
          richfaces沒用過.Spring2.5和JSF的結合好象用2.0的方法也是可以的.
          setter方法里是NULL?不太明白什么意思?
          最好有代碼才好判斷.再有你看看bean的作用域是什么?session or request?  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 [未登錄] 2008-06-15 09:12 | sa
          嚴重: Error configuring application listener of class com.sun.faces.config.ConfigureListener
          java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet
          at java.lang.Class.getDeclaredConstructors0(Native Method)
          at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
          at java.lang.Class.getConstructor0(Class.java:2699)
          at java.lang.Class.newInstance0(Class.java:326)
          at java.lang.Class.newInstance(Class.java:308)
          at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3771)
          at org.apache.catalina.core.StandardContext.start(StandardContext.java:4336)
          at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:761)
          at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:741)
          at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
          at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
          at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
          at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
          at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
          at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
          at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120)
          at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1023)
          at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
          at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1015)
          at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
          at org.apache.catalina.core.StandardService.start(StandardService.java:448)
          at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
          at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
          at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
          at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
          at java.lang.reflect.Method.invoke(Method.java:597)
          at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
          at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
          2008-6-15 9:02:23 org.apache.catalina.core.StandardContext listenerStart
          把jsf-api.jar,jsf-impl.jar,jstl-1.2.jar加入tomcat6/lib時, 就只有一個新建工程時的index.jsp,里面沒有加入任何一行代碼,啟動tomcat6就報這個錯誤,使用jdk6,請樓主及知道的人員告訴我原因,我的油箱675074381@qq.com 或者ling2012.yahoo.cn  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2008-06-16 13:37 | gembin
          java.lang.NoClassDefFoundError: org/apache/commons/digester/RuleSet

          看樣子是少commons-digester 包把  回復  更多評論
            
          # re: JSF1.2 +Spring2.0 +Hibernate3.2 2008-10-11 11:24 | 素馨花
          推薦一個非常棒的jsf1.2的實例Donuts1.3軟件myfaces1.2+tomahawk1.1.7),
          (www.xerllent.cn),下載頁面:http://www.xerllent.cn/sites/home/TypeView.jsp?TypeID=67

          軟件安裝需要sqlserver2000支持。)  回復  更多評論
            

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 黄山市| 乌兰浩特市| 平阳县| 霍山县| 广东省| 南雄市| 莱西市| 丹阳市| 萨迦县| 富顺县| 乌审旗| 红河县| 广西| 陆川县| 安泽县| 南昌县| 肥东县| 泰州市| 丹江口市| 措美县| 纳雍县| 潞西市| 西林县| 巢湖市| 朔州市| 彰化市| 桂阳县| 阳朔县| 阜阳市| 呼图壁县| 高台县| 隆安县| 阿合奇县| 横峰县| 广平县| 池州市| 惠水县| 兴和县| 遂昌县| 巨野县| 吉首市|