`
teamojiao
  • 浏览: 350516 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

struts2.0升级到struts2.1.6遇到的问题汇总

阅读更多

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方式获取

还有一些其他问题,还在整理中……

分享到:
评论

相关推荐

    Struts2.1.6+Struts2.0+Hibernate3.1整合示例

    开发环境: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.0中s:datetimepicker标签使用范例》这一主题时,我们首先需要理解struts2框架以及其内置的s:datetimepicker标签的用途与配置方法。Struts2是一个开源的Web应用框架,基于MVC(Model-View-Controller...

    struts2.1.6 解决日历问题

    struts2.1.6 解决日历问题。区别struts2.0

    Struts2.0jar包

    包含了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.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开发环境的搭建及HelloWorld的演示

    Struts2.0 是一个基于 MVC(Model-View-Controller)设计模式的开源框架,用于构建企业级的Java Web应用程序。本教程将详细介绍如何在MyEclipse 6.5.0 GA环境中搭建Struts2.0开发环境并实现一个简单的"HelloWorld...

    struts2.1.6+spring2.0+hibernate3.2常用配置包

    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包

    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-struts1-plugin-2.1.6.jar

    Struts2.2 升级到Struts2.3

    Struts2.2到Struts2.3的升级是一个重要的更新过程,涉及到多个方面的改动和优化,包括性能提升、安全增强以及新特性的引入。在升级过程中,我们需要关注以下几个关键知识点: 1. **依赖包的更新**:Struts2.3.32...

    从2.1.6升级到2.3.32版本需要替换的jar包

    从2.1.6版本升级到2.3.32版本涉及到一系列的改动和增强,旨在提高性能、安全性和用户体验。在这个过程中,替换同名的jar包是关键步骤之一,以确保新版本的功能正常运行。 首先,我们来看`Struts2.3.32.jar`,这是...

    struts2-convention-plugin-2.1.6.jar

    struts2-convention-plugin-2.1.6.jar

    struts2.0中jar包的用法

    ### Struts2.0中JAR包的使用详解 #### 一、概述 在Struts2.0框架中,为了实现MVC模式的应用程序开发,需要依赖一系列的JAR包来支持其核心功能及扩展特性。本文将详细介绍这些常用的JAR包的功能与作用,帮助开发者...

    Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3(第二部分)

    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(第一部分)

    Struts1.2+Struts2.1.6+spring 2.0+hibernate3.1+Ibatis2.3内个框架的集成

    struts-2.1.6-sources

    Struts 2.1.6 是一个非常重要的版本,在Java Web开发中占据着核心地位,尤其是在基于MVC...掌握Struts 2的使用和源码分析,对于Java开发者来说,无疑会增加他们的技能树深度,并有助于解决实际开发中遇到的各种问题。

    struts2.1.6

    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

Global site tag (gtag.js) - Google Analytics