struts2集成(包括遇到问题)

Struts2虽然在大版本号上是第二个版本,但基本上在配置和使用上已经完全颠覆了Struts1.x的方式(当然,Struts2仍然是基于MVC模式的,也是动作驱动的,可能这是唯一没变的东西)。Struts2实际上是在Webwork基础上构建起来的MVC框架。我们从Struts2的源代码中可以看到,有很多都是直接使用的xwork(Webwork的核心技术)的包。

首先我们先回顾下struts1的大致过程:

1. 安装Struts。由于Struts的入口点是ActionServlet,所以得在web.xml中配置一下这个Servlet。

2. 编写Action类(一般从org.apache.struts.action.Action类继承)。

3. 编写ActionForm类(一般从org.apache.struts.action.ActionForm类继承),这一步不是必须的,如果要接收客户端提交的数据,需要执行这一步。

4. 在struts-config.xml文件中配置Action和ActionForm。

5. 如果要采集用户录入的数据,一般需要编写若干JSP页面,并通过这些JSP页面中的form将数据提交给Action。

下面我们介绍下struts2如何与润乾集成以及需要注意哪些:

1.       引入struts2以及润乾的jar包

第一种方法:由于MyEclipse6目前并不支持Struts2,所以我们需要到struts.apache.org去下载Struts2安装包。要想正常使用Struts2,至少需要如下五个包(可能会因为Struts2的版本不同,包名略有差异,但包名的前半部是一样的)。

struts2-core-2.0.11.1.jar

xwork-2.0.4.jar

commons-logging-1.0.4.jar

freemarker-2.3.8.jar

ognl-2.6.11.jar

第二种方法:myeclipse8以上的版本已经集成了struts2的集成方法,直接通过工具即可,这里不多介绍。

然后集成进润乾相关的jar包以配置文件到web项目中。

2.       配置struts以及报表相关配置。

首先将润乾报表的配置文件以及相关需要修改的web.xml配置好,接下来进行struts2配置,这一步对于Struts1.x和Struts2都是必须的,只是安装的方法不同。Struts1的入口点是一个Servlet,而Struts2的入口点是一个过滤器(Filter)。因此,Struts2要按过滤器的方式配置。下面是在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>

如上配置是正常情况下struts2的配置方式,可是在实际与润乾集成的应用过程中,会发现例如翻页、编辑风格等功能不能正常使用。是由于struts2本身的过滤机制屏蔽了润乾中所需要的jsp、action等。所以再集成时候需要将这些filter加上。

    <filter-mapping>

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

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

    </filter-mapping>

    <filter-mapping>

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

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

    </filter-mapping>

这样就完成了润乾和struts2的集成配置,接下来就可以编写自己的action,在action中调用展现报表的jsp正常访问了。

热门文章