📜  Struts 2教程:多个配置文件示例(1)

📅  最后修改于: 2023-12-03 15:05:23.538000             🧑  作者: Mango

Struts 2教程:多个配置文件示例

在Struts 2中,可以使用多个配置文件来分离不同功能模块所需要的配置信息,使得配置更加清晰、结构更加合理。本文将介绍如何在Struts 2中使用多个配置文件来实现不同的功能。

1. 创建项目

首先,我们需要创建一个Maven项目,作为本次教程的基础。

2. 增加依赖

在项目的pom.xml文件中,我们需要增加Struts 2的依赖项:

<dependencies>
    <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-core</artifactId>
        <version>2.5.26</version>
    </dependency>
</dependencies>
3. 创建Struts 2配置文件

我们可以将Struts 2的配置信息分散到多个配置文件中。例如,我们可以创建一个struts.xml文件用于全局配置,另外一个文件用于处理某个功能模块的配置信息。在本次教程中,我们将会创建两个配置文件:struts.xml和hello2.xml。

3.1. struts.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文件。

3.2. 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页面。

4. 创建Action类

我们需要创建一个名为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!"。

5. 创建视图

我们需要创建两个视图,用于展示请求的结果。在src/main/webapp目录下,创建hello.jsp和hello2.jsp文件,将以下代码添加到其中:

5.1. hello.jsp
<!DOCTYPE html>
<html>
<head>
    <title>Hello World!</title>
</head>
<body>
    <h1>${message}</h1>
</body>
</html>
5.2. hello2.jsp
<!DOCTYPE html>
<html>
<head>
    <title>Hello Struts 2!</title>
</head>
<body>
    <h1>${message}</h1>
    <p>This is another hello page.</p>
</body>
</html>
6. 运行项目

现在,我们可以运行这个项目,查看请求的结果。在浏览器中打开http://localhost:8080/项目名/hello.action,我们应该能够看到"Hello Struts 2!"这个字符串。接着,我们将会调用hello2.xml文件,查看另一个视图。在浏览器中打开http://localhost:8080/项目名/hello2.action,我们应该能够看到"Hello Struts 2!"这个字符串和"This is another hello page."这个字符串。这说明我们的配置文件和Action类均已被正确地加载和处理。