struts2升級到2.5的配置


之前的struts版本太低,后來用想過換個后台,但是改動太大,還是升級到最新版本的struts吧,雖然有點蛋疼的經歷,最終還是解決了。下面來分享一下我的經歷!!!

 

1.下載struts2   2.5.12版本的jar包

2.首先是替換核心jar包了,下面是我所選jar包,如果原來項目是log4j.jar要保留,把log4j-api-2.8.2.jar也是要拷貝進去(我原本刪除項目里的log4j.jar項目報錯,tomcat啟動不了)

3.刪除原工程“xwork-core-2.3.20.jar”

4.修改web.xml,把“<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>”修改成“<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>”

原因是:看圖

發現沒?新版本的filter包前面沒有ng包

5.首先我先在自己做的demo項目里升級的很順利,我的demo項目本來就是struts2  2.3.30的,配置文件也少,升級起來很容易。有關struts.xml的配置文件修改部分。

a.頭部改為<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">

b.由於新版本的Struts默認不能修改action的訪問后綴,不能使用通配的方式調用action里的方法,所以添加

<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.enable.SlashesInActionNames" value="true"/>

使得<constant name="struts.action.extension" value="do" />可以生效

c.<package name="mypackage" namespace="/" extends="struts-default" strict-method-invocation="false"> 注意這里添加了strict-method-invocation="false"

6.修改jsp的struts標簽,新版本里有兩處明顯區別。有關jsp頁面修改部分

a.類似 <s:bean name="com.whb.common.DictItem" id="dictItem" /> 要修改成 <s:bean name="com.whb.common.DictItem" var="dictItem" />

b.類似<s:property value="result" escape="false"/>  要修改成 <s:property value="result" escapeHtml="false"/>

7.我的demo項目就這樣很容易的就升級成功了,很是開心,然后就去升級公司項目了,接下來蛋疼的事就來了,先是說hibernate創建sessionFactory出錯,原因是用了ams.jar出錯,

8.  java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V,讓我很是費勁了一番,后來,我就拼命的google和百度,結果還是不行,費了我一個下午和一個早上的時間,最后還是不行,我徹底的服了。最后找到了解決的辦法:

出現<init>(Z)V將
將cglib.jar 由2.1版本 改為 2.2
出現<init>(I)V將
將cglib.jar 由2.2版本 改為 2.1

cglib.jar 下載地址    http://www.java2s.com/Code/Jar/c/Downloadcglib220jar.htm   點擊下面圈起來的就下載了

 

9.友情提示:

順便提一下,頁面提交表單的時候不要用struts自帶的<s:form>和<s:form>的namespace屬性,最好也別用$("#").submit()提交,我經歷過action無論返回success還是其它的,頁面就是不不變,也不是404和500,頁面就是不動。我的做法舍棄用<s:form>,直接用普通的<form></form>表單多好。

② 這是我后來遇到的struts2 2.5的版本與kingEditor不兼容的問題,導致kingEditor不能上傳本地圖片。我的做法把kingEditor換成了ueditor。就ok了。

10.還有人 碰到動態Action問題,反正我用上面的方法都可以解決的,如果你的動態Action不能解決,給你分享兩個鏈接

http://blog.csdn.net/qq_24059599/article/details/51986761

http://blog.csdn.net/cairo123/article/details/65629216

好了這個升級終於告一段落了,這種東西升級太快,哎,又是令人操蛋的擔心!!!!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM