这玩意要给我折腾死
当前最新的struts2版本是struts2.5,当前的不少教材则介绍的struts2.3
而他们的配置方法是不一样的,这让萌新很受伤
配置所需步骤
1 导入.jar包
2 配置src下的struct.xml文件
3 配置WEB-INF下的.xml文件
这些是基本步骤了,然后再写两个.jsp页面实验一下能否运行
1导入.jar包
这个首先从官网上下载,然后在lib文件夹里把.jar包复制粘贴到项目的.lib文件夹。对于struts2.5来说,这些是必须的
对于struts2.3来说,这些则是必须的
导入方法:直接在window资源管理器中把下载并解压的.jar包复制到项目的.lib文件夹即可,或者直接复制了粘贴到ecplise中的项目的.lib文件夹也可
这些包添加到WEB-INF的lib下之后,刷新一下,他们就也出现在项目下的Java Resources下的Libraries下的Web App Libraries里了
2 配置src下的struts.xml文件
这里我将设置两个.jsp页面用来验证功能,一个index.jsp页面,另一个first.jsp/second.jsp页面,点击index的链接跳转到first/second
在2.3版本里的是first 2.5版本里的是second
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title 1</title>
</head>
<body>
<a href="second.action">欢迎</a>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title 2</title>
</head>
<body>
我的第一个struts程序!!
</body>
</html>
然后在src下添加struts.xml文件,这里是直接添加到src下,不用再src下
建个包再加进去,否则会报错
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>
<constant name="struts.enable.DynamicMethodInvocation" value="false"/>
<package name="defaultPackage" extends="struts-default">
<action name="second">
<result>/second.jsp</result>
</action>
</package>
</struts>
2.3的struts.xml配置
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<package name="defaultPackage" extends="struts-default">
<action name="second">
<result>/second.jsp</result>
</action>
</package>
</struts>
区别在于第三行和第四行的版本号不同
其中有句
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
这一句好像加也行不加也行??我是新手,不懂
3 配置WEB-INF下的.xml文件
2.5的配置方法
<?xml version="1.0" encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
id="WebApp_ID" version="4.0">
<display-name>Second_MVC_Project</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<display-name>9.01</display-name>
<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>
</web-app>
2.3的配置方法
和2.5基本没差别,但是中间配置filter的类名和2.5有差
2.5的没有.ng 而2.3的有,下面是2.3的
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
完成
在三个步骤完成,以及.jsp页面添加完成之后,就可以运行了