struts2.0升级到struts2.1.6遇到的问题汇总
最近项目从struts2.0升级struts2.1,改动还真不少,这里把升级过程中遇到的问题都记录下来:
问题一 web.xml的变化
struts2.1中的写法为:
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->
<
filter
>
<
filter
-
name
>
struts2
</
filter
-
name
>
<
filter
-
class
>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</
filter
-
class
>
</
filter
>
<
filter
-
mapping
>
<
filter
-
name
>
struts2
</
filter
-
name
>
<
url
-
pattern
>
/*
</url-pattern>
</fil
ter-mapping>
问题二 零配置的变化
在struts2.0中,一直使用的是codebehind插件,在struts2.1中已废弃codebehind,改用convention插件,这个插件使用比较简单,根据官方的文档很全,很容易就能上手,这里把我convention的参数写下来:
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->struts.convention.result.path=/WEB-INF/jsp/
struts.convention.action.name.lowercase=false
struts.convention.action.name.separator=
struts.convention.default.parent.package=default
struts.convention.package.locators.basePackage=com.mysite.web.action
问题三 tabbedPanel标签
一
直在使用struts2.0中的s:tabbedPanel标签,这个标签使用的是dojo脚本框架,在struts2.0中是自带的,struts2开
发小组在struts2.1中把dojo做为插件的形式存在,对应的写法也发生了变化,下面是struts2.1中的写法:
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><%
@ taglib prefix
=
"
sx
"
uri
=
"
/struts-dojo-tags
"
%>
……
<
sx:head
/>
<
sx:tabbedpanel id
=
"
tabbedpanel1
"
cssStyle
=
"
width: 100%; height: 100%
"
doLayout
=
"
true
"
>
<
sx:div id
=
"
column1
"
label
=
"
栏目一
"
loadingText
=
"
加载中……
"
href
=
"
url1.action
"
cssStyle
=
"
display:none
"
>
</
sx:div
>
<
sx:div id
=
"
column2
"
label
=
"
栏目二
"
loadingText
=
"
加载中……
"
href
=
"
url2.action
"
cssStyle
=
"
display:none
"
>
</
sx:div
>
</
sx:tabbedpanel
>
问题四 乱码问题
原来在struts2.0里面正常的内容,在struts2.1.6中会乱码,struts2.1.6居然还敢声称GA版,这种bug都有,汗一个,从官方找到的解决办法,
修改strut2.1.6源文件org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter,把doFilter方法中由:
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->prepare.createActionContext(request, response);
prepare.assignDispatcherToThread();
prepare.setEncodingAndLocale(request, response);
改为:
<!-- <br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->prepare.setEncodingAndLocale(request, response);
prepare.createActionContext(request, response);
prepare.assignDispatcherToThread();
不想修改源文件的话,把StrutsPrepareAndExecuteFilter类的代码copy一份,然后web.xml配置成你copy的这份也可以
问题五 could not be resolved as a collection/array/map/enumeration/iterator type
在s:select,s:s:checkboxlist标签中使用集合,如果集合为空时,会报这个错误,在struts2.0中不会报这个错误
问题六 float类型变量值为0.0时,设置set方法时出错
目前没有发现好的解决方法,替待解决方法是去掉set方法,提交页面需要设置值时,通过request.getAttribute方式获取
还有一些其他问题,还在整理中……
分享到:
相关推荐
开发环境:Windows XP sp3、SQL Server 2005、JDK 1.6、Struts2.1.6、Spring 2.0、Hibernate3.1、MyEclipse 5.5、Tomcat 6.0 使用步骤: 1、下载解压之后,使用IDE导入工程 2、把工程中的“演示数据脚本.sql”导入到...
在探讨《struts2.0中s:datetimepicker标签使用范例》这一主题时,我们首先需要理解struts2框架以及其内置的s:datetimepicker标签的用途与配置方法。Struts2是一个开源的Web应用框架,基于MVC(Model-View-Controller...
struts2.1.6 解决日历问题。区别struts2.0
包含了struts2.0所需的5个jar包 commons-logging-1.1.jar freemarker-2.3.13.jar ognl-2.6.11.jar struts2-core-2.1.6.jar xwork-2.1.2.jar
struts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jarstruts2-core-2.1.6.jar...
Struts2.0 是一个基于 MVC(Model-View-Controller)设计模式的开源框架,用于构建企业级的Java Web应用程序。本教程将详细介绍如何在MyEclipse 6.5.0 GA环境中搭建Struts2.0开发环境并实现一个简单的"HelloWorld...
MyEclipse8.0中自带的struts2版本是2.1.6,spring版本有2.0,2.5的,hibernate版本较多些至3.2,首先选版本就选择最优的,struts2没的选只有2.1.6版的,所以先导入struts2支持,然后是spring选的是2.0,问题就出在...
struts2.0 要用到的 jar 包 commons-fileupload-1.2.1.jar,commons-io-1.3.2.jar,commons-logging-1.1.jar,freemarker-2.3.13.jar,ognl-2.6.11.jar,xwork-2.1.2.jar,struts2-core-2.1.6.jar 7个包 copy到WebRoot/WEB...
struts2-struts1-plugin-2.1.6.jar
Struts2.2到Struts2.3的升级是一个重要的更新过程,涉及到多个方面的改动和优化,包括性能提升、安全增强以及新特性的引入。在升级过程中,我们需要关注以下几个关键知识点: 1. **依赖包的更新**:Struts2.3.32...
从2.1.6版本升级到2.3.32版本涉及到一系列的改动和增强,旨在提高性能、安全性和用户体验。在这个过程中,替换同名的jar包是关键步骤之一,以确保新版本的功能正常运行。 首先,我们来看`Struts2.3.32.jar`,这是...
struts2-convention-plugin-2.1.6.jar
### Struts2.0中JAR包的使用详解 #### 一、概述 在Struts2.0框架中,为了实现MVC模式的应用程序开发,需要依赖一系列的JAR包来支持其核心功能及扩展特性。本文将详细介绍这些常用的JAR包的功能与作用,帮助开发者...
Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3 SSH
Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3内个框架的集成
Struts 2.1.6 是一个非常重要的版本,在Java Web开发中占据着核心地位,尤其是在基于MVC...掌握Struts 2的使用和源码分析,对于Java开发者来说,无疑会增加他们的技能树深度,并有助于解决实际开发中遇到的各种问题。
struts2.1.6,内有6个架包: commons-fileupload-1.2.1.jar; commons-logging-1.0.4.jar; freemarker-2.3.13.jar; ognl-2.6.11.jar; struts2-core-2.1.6.jar; xwork-2.1.2.jar