Eclipse下struts2.5环境搭建与struts2.3的区别 博客分类: 精选
视频教程中,老师讲解的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包。如下图所示。
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>
来源:慕课网