struts-2.5.20部署使用及三种Action使用方法
struts-2.5.20部署使用
准备
eclipse+Tomcat+struts-2.5.20-all.zip+apache-log4j-2.12.1-bin.zip
struts-2.5.20下载地址 点击下载
apache-log4j-2.12.1-bin.zip 下载地址 点此下载
注:本人使用的为eclipse4.12.0+Tomcat9.0+struts-2.5.20+apache-log4j-2.12.1
开始部署
新建web项目
此处略过
加入struts-2.5.20的jar包
1、解压struts-2.5.20-all.zip并找到其内lib目录,找到如下jar包
- commons-beanutils-1.9.3.jar
- commons-fileupload-1.4.jar
- commons-io-2.6.jar
- commons-lang3-3.8.1.jar
- freemarker-2.3.28.jar
- javassist-3.20.0-GA.jar
- ognl-3.1.21.jar
- struts2-core-2.5.20.jar
将以上jar包放入网站的lib目录下
2、由于struts2.5.20使用了log4j2,所以我们还要准备
- log4j-api-2.12.1.jar
- log4j-core-2.12.1.jar
将这两个jar包也放入网站的lib目录下
配置struts核心过滤器和log4j2
配置struts核心过滤器
打开/WebContent/WEB-INF/web.xml,如果没有请新建一个。
注意web.xml的文件位置,切勿创建错误!!
复制如下内容填写进去,注意:web-app标签上的所有版本信息需和自己的Apache版本对应,如需知其他对应版本请移步百度!
<web-app metadata-complete="true"
version="4.0"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd">
<!-- struts2核心过滤器 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
配置log4j2
在src目录下新建log4j2.xml文件,填写如下内容
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.opensymphony.xwork2" level="debug"/>
<Logger name="org.apache.struts2" level="debug"/>
<Root level="warn">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
将web项目加入Tomcat并启动
仔细观察控制台中log4j2打印出来的日志信息,如若报错,请检查上述过程是否有误。
以上操作后的截图如下
至此,基本配置算是完成!
三种Action使用方法
在开始之前,我们需要在src下新建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>
稍后我们会在这个文件中配置Action信息
方法一
直接新建一个Action类
示例:
在src新建lf.blank.action包,包内新建文件UseOneAction.java
UseOneAction中写一个login方法
在struts.xml中配置此Action信息,结果视图转发的页面别忘了创建一个,配置好重启服务器
访问一下看看
看一下控制台里有没有输出
方法二
新建一个Action类实现Action接口
示例:
在lf.blank.action包内新建UseTwoAction.java,使此类实现Action接口
如图
我们可以看到,Action接口内有一个execute函数,我们必须实现它,否则会报错
配置一下UseTwoAction,配置好重启服务器
访问一下
看看控制台输出
方法三
新建一个Action类继承ActionSupport类
示例:
在lf.blank.action包内新建UseThreeAction.java,使此类继承ActionSupport类
如图
配置一下UseThreeAction,配置好重启服务器
访问一下
看看控制台
这三种方法的区别
区别这三种方法最好的办法就是去阅读源码,我们来看一看Action接口和ActionSupport类的源码
Action接口代码如图
我们可以看到,这个接口定义了几个视图常量和一个execute函数,非常的简洁,如果我们只需要简单的访问输出,这个接口很适合。
再看看ActionSupport类的源码
通过观察,我们可以看到此类实现了Action接口,同时也实现了其他接口,显然是一个复杂的类,如果你的Action要实现复杂的功能,继承此类是最好的方法。
所以通过上面的比较,还是推荐使用继承ActionSupport类
结束
以上就是本文的全部内容了,此篇博客为本人初学所写,言辞有不合适或理解有不到位的地方希望路过大佬指教,拜了个拜!