日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts升级2.3.12到2.5.13

發布時間:2024/4/17 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts升级2.3.12到2.5.13 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參考文章:
http://www.ituring.com.cn/article/495914
http://blog.csdn.net/zhangchen1987/article/details/78054960
http://blog.csdn.net/zhangchen1987/article/details/78054512
http://blog.csdn.net/educast/article/details/52212904

1.首先jdk1.6要升級到jdk1.7以上

2.struts2包替換

jar包下載地址:自己搜索jar包名稱下載

http://mvnrepository.com/artifact/org.apache.struts/struts2-core

然后替換所有struts開頭的jar包,

,刪除了xwork-core-2.3.12.jar這個jar包?

,commons-lang3-3.4.jar 升級至 commons-lang3-3.6.jar,

,freemarker-2.3.19.jar升級到freemarker-2.3.23.jar

,ognl-3.0.6.jar升級到ognl-3.1.5.jar

,log4j-1.2.13.jar升級到log4j-1.2.17.jar

javassist-3.20.0-GA.ja

刪除了xwork-core-2.3.12.jar這個jar包 ,ac.getParameters()需要加個強轉map?

?

3.修改web.xml:

1)
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
修改成
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
2)
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsExecuteFilter</filter-class>
改成
<filter-class>org.apache.struts2.dispatcher.filter.StrutsExecuteFilter</filter-class>

4.struts2配置修改

1)struts.xml部分的頭部修改

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd">

問題報錯:

org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: org.apache.struts2.json.JSONException: .apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetException

網上解決辦法:http://ask.csdn.net/questions/260958

這是因為 struts2.5 為了提升安全性,添加了 allomethod 這么個玩意。

2)解決方法是在配置文件中添加:

package中添加順序(result-types?,interceptors?,default-interceptor-ref?,default-action-ref?,default-class-ref?,global-results?,global-allowed-methods?,global-exception-mappings?,action*?

<package name="exam" extends="json-default"> <global-allowed-methods>regex:.*</global-allowed-methods> <action name="user" class="userAction">... </action> </package>

或者,針對action,在 action 塊中添加

<allowed-methods>regex:.*</allowed-methods>

同樣也支持在你的 action 上使用?@AllowedMethods?注解
默認的設置為

<global-allowed-methods>execute,input,back,cancel,browse,save,delete,list,index</global-allowed-methods>

全局設置是增量而不是覆蓋的,支持正則和直接匹配方法,源碼在這兩段

// com.opensymphony.xwork2.DefaultActionProxy#prepare // com.opensymphony.xwork2.config.entities.ActionConfig#isAllowedMethod

老項目因為爆出漏洞然后我找了一下午這個問題,最終打開研發模式,并搜索官網文檔解決。 struts 真是個坑啊。


5.struts2頁面修改

頁面報錯,否則報錯如下:

Struts has detected an unhandled exception: Messages: /tagDef/export_record_now.jsp (line: 41, column: 4) Attribute id invalid for tag iterator according to TLD File: org/apache/jasper/compiler/DefaultErrorHandler.java

1)頁面中一些標簽需要修改: jstl標簽中的變量id要變為var如圖:? ?id="yy"替換成var="yy"

2)頁面中一些標簽需要修改:jstl標簽中的變量escape要變為escapeHtml如圖: escape="false"要替換成escapeHtml="false"?

?jar包里的META-INF/struts-tags.tld文件復制到Web應用的\WEB-INF目錄下。

轉載于:https://www.cnblogs.com/tong2018/p/8391191.html

總結

以上是生活随笔為你收集整理的struts升级2.3.12到2.5.13的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。