最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

struts2自定义struts配置文件和引用外部xml文件

旗下网站admin36浏览0评论

struts2自定义struts配置文件和引用外部xml文件

struts2自定义struts配置文件和引用外部xml文件

标题:如何自定义struts2的配置文件位置并在该配置文件中引用其他的xml配置文件

小白历程-----------记录日常掉坑系列

总目录结构如图:


运行环境:

win10

eclipse 4.7.3a

jdk1.8

struts-2.5.16

需求构想:

想把struts的主配置文件放在src下新建的一个包(package)内,然后把每个模块的action分别做成单独的子struts配置文件方便后续维护管理,通过主配置文件的include标签引用子配置文件;

测试效果:访问index.jsp,通过两个超链接发送action请求,一个关联了ation类,一个直接通过转发到页面

各文件内容

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi=""
	xmlns=""
	xsi:schemaLocation=" .xsd"
	id="WebApp_ID" version="3.1">

	<filter>
		<filter-name>struts2</filter-name>
		<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
		<!-- 初始化参数,前两者为依赖的xml,后者为自定义struts的xml文件 -->
		<init-param>
			<param-name>config</param-name>
			<param-value>struts-default.xml,struts-plugin.xml,struts2_xml/struts.xml</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>struts2</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>

</web-app>

struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	".5.dtd">

<struts>
	<!-- 修改默认访问后缀名 -->
	<constant name="struts.action.extension" value="action,do,"></constant>
	<!-- 导入相关模块配置文件,注:访问非根目录时路径名开头写法 -->
	<include file="resource/testpages.xml"></include>
</struts>

testpages.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
	".5.dtd">

<struts>
	<!-- 注意:extend需继承默认的包 -->
	<package name="testAction" extends="struts-default" >
		<action name="myAction" class="testpages.TestAction" method="test">
			<result name="myAction">/testpages/myaction.jsp</result>
		</action>
		<action name="actionTest">
			<result>/testpages/myaction.jsp</result>
		</action>
	</package>
</struts>

TestAction.java

package testpages;

public class TestAction {
	public String test() {
		System.out.println("TestAction's test");
		return "myAction";
	}
}

index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>标题</title>
</head>
<body>
	<h3>struts2 连接测试首页</h3>
	<a href="myAction">To myAction Page</a><br>
	<a href="actionTest.do">To MyAction Page</a>
</body>
</html>

myaction.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>标题</title>
</head>
<body>
	<h2>THIS IS MyAction Page</h2>
	<p>测试成功</p>
</body>
</html>

运行预览效果图:


点击第一个超链接后:


点击第二个超链接后:



可能碰到各种问题:页面404,无法加载类文件,无法加载配置文件信息等等,请注意上文三个xml有注释区域写法。

注:以上仅做简单的配置测试,所以并没有把页面放在WEB-INFO目录下,如有错误欢迎指出,本人小白,欢迎大家评论区留言,互相学习。

发布评论

评论列表(0)

  1. 暂无评论