webwork项目移植到struts2

来源:互联网 发布:知茵女装品牌介绍 编辑:程序博客网 时间:2024/05/22 10:57

Webwork项目要转到struts2:

一、变化

struts2代码始于webwork2.2.3,少许的比较大的改动可能会影响你的webwork2.2应用的移植

1、一些被Deprecated掉的方法和类已经被移除,这包括XWork Inversion of Control (IoC) 框架。

2、使用xhtml 主题的一些工具库被DOJO的工具组件替代。

3、使用FCK editorrich text editor 组件被DOJOrich text editor 替代,因为LGPL许可的原因。

4date picker组件也由于LGPL许可的原因被DOJOdate picker组件替代,不幸地,DOJOdate picker组件不支持国际化。

感觉3有点可惜,FCK Editor还是很好用的。

二、移植:

         一、引入struts2核心类库

struts2-core-2.1.8.1.jar

xwork-core-2.1.6.jar

freemarker-2.3.15.jar

ognl-2.7.3.jar

 

二、修改web.xml 文件:

加入struts2的过滤器:

    <filter>

        <filter-name>struts2</filter-name>

        <filter-class>

            org.apache.struts2.dispatcher.FilterDispatcher

        </filter-class>

    </filter>

 

    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

   

并且删除掉:webwork servlet

    <servlet>

        <servlet-name>webworkDispatcher</servlet-name>

        <servlet-class>

            com.opensymphony.webwork.dispatcher.ServletDispatcher

        </servlet-class>

        <load-on-startup>1</load-on-startup>

    </servlet>

   

    <servlet-mapping>

        <servlet-name>webworkDispatcher</servlet-name>

        <url-pattern>*.action</url-pattern>

    </servlet-mapping>

   

   

 

 

   

三、修改文件名:   

webwork-default.xml 改名为:struts-default.xml

webwork.properties 改名为:struts.properties

xwork.xml 改名为:struts.xml

 

 

四、对改名后的文件进行修正:

1

修改struts.xml

删除掉 <include file="struts-default.xml" />    这个文件已经包含在struts2-core-2.1.8.1.jar

或者

删除掉 conf下的 struts-default.xml

因为 以前名字叫 webwork-default.xml 里面可能包含webwork自己的一个 拦截器。所以到struts2中报错。

 

2

如果报错出现:

Document root element "struts", must match DOCTYPE root "xwork".

 

该按照以下来修改:

struts.xml 文件修改:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

修改为

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

   

并且:<xwork></xwork> 修改为  <struts></struts>

   

3

struts-default.xml 文件修改:

<!DOCTYPE xwork PUBLIC "-//OpenSymphony Group//XWork 1.0//EN" "http://www.opensymphony.com/xwork/xwork-1.0.dtd">

    修改为:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd">

   

五、JSP页面相关

修改JSP页面:  prefix="ww"  tag的前缀,struts2默认为 prefix="s";我们可以继续用 prefix="ww"

<%@ taglib prefix="ww" uri="webwork" %>

<%@ taglib prefix="ww" uri="/struts-tags" %>

 

Struts2的标签库描述文件struts-tags.tld已经包含在struts2的核心类库struts2-core-2.1.8.1.jarMETA-INF目录中,Servlet

容器会自动找到这个文件,因此对struts2标签库的配置是不必要的,也是不建议的。

因此在JSP页面中引用struts2标签库时,taglib指令的uri属性要设置为 /struts-tags

如果由于特殊原因,需要在web.xml文件中配置struts2标签库:可以从struts2-core-2.1.8.1.jar文件的 META-INF目录下抽取出

 struts-tags.tld 文件,并放到web应用程序的 WEB-INF目录或者子目录下,然后修改web.xml文件,添加如下配置:

    <jsp-config>

        <taglib>

            <taglib-uri>/struts-tags</taglib-uri>

            <taglib-location>

                /WEB-INF/struts-tags.tld

            </taglib-location>

        </taglib>

    </jsp-config>