📅  最后修改于: 2023-12-03 15:05:23.538000             🧑  作者: Mango
在Struts 2中,可以使用多个配置文件来分离不同功能模块所需要的配置信息,使得配置更加清晰、结构更加合理。本文将介绍如何在Struts 2中使用多个配置文件来实现不同的功能。
首先,我们需要创建一个Maven项目,作为本次教程的基础。
在项目的pom.xml文件中,我们需要增加Struts 2的依赖项:
<dependencies>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.26</version>
</dependency>
</dependencies>
我们可以将Struts 2的配置信息分散到多个配置文件中。例如,我们可以创建一个struts.xml文件用于全局配置,另外一个文件用于处理某个功能模块的配置信息。在本次教程中,我们将会创建两个配置文件:struts.xml和hello2.xml。
在src/main/resources目录下创建一个名为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.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="hello" class="com.example.struts2.HelloWorldAction">
<result name="success">/hello.jsp</result>
</action>
</package>
<include file="hello2.xml"/>
</struts>
这个文件的作用是定义一个名为hello的Action,其对应的类为com.example.struts2.HelloWorldAction,并将其视图渲染到hello.jsp页面。此外,该文件还将调用hello2.xml文件。
在src/main/resources目录下创建一个名为hello2.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>
<package name="hello2">
<action name="hello2" class="com.example.struts2.HelloWorldAction">
<result name="success">/hello2.jsp</result>
</action>
</package>
</struts>
这个文件的作用是定义一个名为hello2的Action,其对应的类为com.example.struts2.HelloWorldAction,并将其视图渲染到hello2.jsp页面。
我们需要创建一个名为HelloWorldAction的类,用于处理请求。在src/main/java/com/example/struts2目录下,创建HelloWorldAction.java文件,将以下代码添加到其中:
package com.example.struts2;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport {
private String message;
public String execute() throws Exception {
setMessage("Hello Struts 2!");
return SUCCESS;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
该类继承自ActionSupport类,实现了execute方法,用于处理请求。该方法将向视图中添加一个名为message的属性,其值为"Hello Struts 2!"。
我们需要创建两个视图,用于展示请求的结果。在src/main/webapp目录下,创建hello.jsp和hello2.jsp文件,将以下代码添加到其中:
<!DOCTYPE html>
<html>
<head>
<title>Hello World!</title>
</head>
<body>
<h1>${message}</h1>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Hello Struts 2!</title>
</head>
<body>
<h1>${message}</h1>
<p>This is another hello page.</p>
</body>
</html>
现在,我们可以运行这个项目,查看请求的结果。在浏览器中打开http://localhost:8080/项目名/hello.action,我们应该能够看到"Hello Struts 2!"这个字符串。接着,我们将会调用hello2.xml文件,查看另一个视图。在浏览器中打开http://localhost:8080/项目名/hello2.action,我们应该能够看到"Hello Struts 2!"这个字符串和"This is another hello page."这个字符串。这说明我们的配置文件和Action类均已被正确地加载和处理。