欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Eclipse下struts2.5环境搭建与struts2.3的区别 博客分类: 精选  

程序员文章站 2024-03-19 15:37:46
...

视频教程中,老师讲解的struts2环境搭建与基本知识是基于struts2.3版本的,目前最新版的struts是2.5版本的。本着与时俱进的原则,本人下载了2.5版本的参与学习,发现有很多地方还是有细微差别的,不注意就要折腾很久,现在汇总一下。

1、jar包的导入

在struts2.3中,老师前后一共导入了9个常用jar包。但是在struts2.5中是没有xwork那个jar包的,所以不用导入也找不到,更不用再去低版本里去单独下载这个包,因为它和struts-core包合并了。其次,当我使用这8个包部署项目后,启动Tomcat会报错,原因是还少了log4j和slf4j这两个jar包,导入后就可以解决问题了。所以前后一共是10个jar包。如下图所示。
Eclipse下struts2.5环境搭建与struts2.3的区别
            
    
    博客分类: 精选  

2、web.xml文件过滤器的配置

配置web.xml文件,在编写<filter-class>标签时,如果按照2.3版本写,用Ctrl+鼠标移动是不会出现链接的,也就是说写的不对。正确的写法是org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter,它与2.3版本相比少了一个ng包。完整的示例如下所示。

<filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>

3、struts.xml文件的配置

在eclipse下新建XML文件是不会有struts的dtd版本头部信息的。而老师的头部信息很明显是2.3版本的,2.5版本的头部信息如下,新建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"><struts></struts>

4、动态调用Action的方式

通过在<action>标签中指定method属性来调用的这种方式两者并无区别,但是如果是使用感叹号和通配符方式,与2.3版本是有细微的不同的。
如下有一个Action类,里面有两个方法update()和delete()。

publicclassHelloWorldActionextendsActionSupport{@OverridepublicString execute()throwsException{return SUCCESS;}publicString add(){//通过指定method属性return SUCCESS;}publicStringdelete(){//通过感叹号方式return"delete";}publicString update(){//通过通配符方式return"update";}}

感叹号方式和通配符方式的struts.xml文件配置示例如下,需要在global-allowed-methods标签或allowed-methods标签中指定相关的方法,多个方法要用“,”隔开。具体的标签含义及使用还是和struts2.3版本老师讲的一样,可参考视频教程,这里不再赘述。

<struts><constantname="struts.enable.DynamicMethodInvocation"value="true"></constant><packagename="default"namespace="/"extends="struts-default"><global-allowed-methods>delete</global-allowed-methods><actionname="helloworld"class="imooc.action.HelloWorldAction"><result>/result.jsp</result><resultname="delete">/delete.jsp</result></action></package></struts>
<struts><packagename="default"namespace="/"extends="struts-default"><actionname="helloworld_*"method="{1}"class="imooc.action.HelloWorldAction"><result>/result.jsp</result><resultname="update">/{1}.jsp</result><allowed-methods>update</allowed-methods></action></package></struts>



来源:慕课网