主要采用的技術(shù)
SSH:Struts2.1.6+Spring2.5+Hibernate3.2
DB:Oracle10g
Service:Tomcat6.0
JDK:jdk1.6
就將在開(kāi)發(fā)過(guò)程中的問(wèn)題和解決方案share出來(lái),希望可以共同研究進(jìn)步:
首先是在MyEclipse7.0下對(duì)SSH開(kāi)發(fā)環(huán)境的搭建
新建一個(gè)WebProject
因?yàn)楝F(xiàn)在在Myeclipse版本中還沒(méi)有集成對(duì)Struts2自動(dòng)嵌入,所以需要我們手動(dòng)將struts2.1.6類(lèi)包的導(dǎo)入,在網(wǎng)上下載對(duì)應(yīng)的lib類(lèi)包,可以通過(guò)
或者收到拷貝類(lèi)包到工程下的Lib文件下,然后刷新項(xiàng)目就可以自己加載進(jìn)去
這樣就把struts2的類(lèi)包導(dǎo)入到項(xiàng)目中了,然后再通過(guò)
導(dǎo)入Spring架構(gòu)
在上面可以看到Spring的版本,我們選擇2.5,在下面類(lèi)包的選擇中我們一定要注意不必要將類(lèi)包全部導(dǎo)入,也不能導(dǎo)入類(lèi)包不全,這樣都會(huì)對(duì)以后的開(kāi)發(fā)造成不必要的麻煩,在這里我們只需要導(dǎo)入: Spring 2.5 AOP Libraries; Spring 2.5 Core Libraries; Spring2.5 PersistenceCore Libraries; Spring 2.5 Web Libraries 四個(gè)類(lèi)包即可。然后
將類(lèi)包自動(dòng)導(dǎo)入項(xiàng)目中,單擊Next
在生成的applicationContex.xml文件自動(dòng)存放的路徑在src下,這里我們?yōu)榱隧?xiàng)目以后統(tǒng)一管理文件這里我們選擇路徑為:WebRoot/WEB-INF,點(diǎn)擊完成就導(dǎo)入了Spring架構(gòu),最后我們?cè)賮?lái)導(dǎo)入Hibernate,Hibernate的導(dǎo)入這里就不做詳細(xì)的說(shuō)明,具體的導(dǎo)入步驟和Struts1.X的導(dǎo)入方式一樣
在這里選擇Hibernate3.2的版本,類(lèi)包只需要加入Hibernate的類(lèi)包 Spring的在前面我們已經(jīng)導(dǎo)入這里就不需要再次導(dǎo)入,下面選擇將對(duì)應(yīng)的類(lèi)包導(dǎo)入到項(xiàng)目lib下
我們這里采用的ssh架構(gòu)就將Hibernate交由Spring來(lái)管理。
這樣在這個(gè)項(xiàng)目中已經(jīng)將Struts2.1.6 Spring2.5和Hibernat3.2導(dǎo)入到項(xiàng)目中,最后一定要注意的問(wèn)題就是類(lèi)包沖突的問(wèn)題,這個(gè)在開(kāi)發(fā)過(guò)程中是最頭痛的事情,因?yàn)楝F(xiàn)在是將三個(gè)框架組合到一起所以就會(huì)有類(lèi)包的沖突,就會(huì)造成項(xiàng)目的啟動(dòng)報(bào)錯(cuò), 一定要將cglib-nodep-2.1_3.jar刪除掉
不知道什么原因上面導(dǎo)入的圖片顯示不了,就多點(diǎn)文字說(shuō)明
接下來(lái)最關(guān)鍵的就是配置web.xml和Struts.xml兩個(gè)文件了:
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">
<display-name>Struts 2.1.6</display-name>
<!-- 配置sturts2的 -->
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
<init-param>
<param-name>config </param-name>
<param-value>../xml/struts.xml </param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- 配置系統(tǒng)啟動(dòng)頁(yè) -->
<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
<!-- 配置監(jiān)聽(tīng) 由spring來(lái)管理 -->
<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>
</web-app>
下面是對(duì)struts.xml文件的配置
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!--下述語(yǔ)句是將struts2交給spring管理 -->
<bean type="com.opensymphony.xwork2.ObjectFactory" name="spring" class="org.apache.struts2.spring.StrutsSpringObjectFactory" />
<!-- Make the Spring object factory the automatic default -->
<constant name="struts.objectFactory" value="spring" />
<!--導(dǎo)入struts-default.xml文件 -->
<include file="struts-default.xml"></include>
<!--將action內(nèi)容放在package元素下,package元素的name值與extends值可以使用默認(rèn)值,如下所示 -->
<package name="default" extends="struts-default">
<!--例如與用戶(hù)登錄相關(guān)的LoginAction,配置如下,其中,class值與applicationContext.xml文件中該action的id值相對(duì)應(yīng),name值作為標(biāo)識(shí)-->
<action name="syshome.loginAction" class="LoginAction" method="checkLogonAdmin">
<result name="fail">/login.jsp </result>
<result name="success">/main.jsp</result>
</action>
</package>
</struts>
這樣整個(gè)項(xiàng)目基本上已經(jīng)配置完成,將項(xiàng)目加載進(jìn)tomcat下就可以運(yùn)行啟動(dòng)頁(yè)面了
聯(lián)系客服