Struts2的配置和一個簡單的例子
阿新 • • 發佈:2018-02-10
ring public return tsp 正在 瀏覽器 使用 javassist github
Struts2的配置和一個簡單的例子
筆記倉庫:https://github.com/nnngu/LearningNotes
簡介
這篇文章主要講如何在 IntelliJ IDEA 中使用 Struts2,文章使用的 Struts2 的版本是2.5.14.1,與其他的版本有一點差別,在文章裏已經說明。
環境
IntelliJ IDEA 2017.2.6
jdk1.8.0_101
Tomcat 8.0.38
添加依賴
依賴的 jar 包有如下幾個:
commons-fileupload-1.3.3.jar commons-io-2.5.jar commons-lang3-3.6.jar freemarker-2.3.26.jar log4j-api-2.9.1.jar ognl-3.1.15.jar struts2-core-2.5.14.1.jar javassist-3.20.0-GA.jar
使用 Maven 構建一個項目,並且在 pom.xml 添加如下依賴:
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.3</version>
</dependency>
<dependency>
<groupId> commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.6</version>
</dependency>
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>2.3.26-incubating</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.9.1</version>
</dependency>
<dependency>
<groupId>ognl</groupId>
<artifactId>ognl</artifactId>
<version>3.1.15</version>
</dependency>
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>2.5.14.1</version>
</dependency>
<dependency>
<groupId>org.javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.20.0-GA</version>
</dependency>
註意:Struts2.5 與之前的版本有點不同,之前的版本還需要xwork-core.jar。Struts2.5不需要它,因為Struts2.5把xwork的源碼合並到了struts2-core中。Struts2.5之前使用logging API,而 Struts2.5 用 log4j API 取代。
在web.xml中配置Struts2框架的核心攔截器StrutsPrepareAndExexuteFilter
<?xml version="1.0" encoding="UTF-8"?>
<web-app 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_3_1.xsd"
version="3.1">
<!--配置struts2的核心攔截器-->
<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-->
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
註意:Filter的完整類名是:org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
Struts2.5 以前是:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
新建一個業務控制類 HelloWorldAction ,繼承自com.opensymphony.xwork2.ActionSupport , 內容如下:
package com.nnngu.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloWorldAction extends ActionSupport {
@Override
public String execute() throws Exception {
System.out.println("正在執行的Action");
// 返回視圖 SUCCESS,這是框架定義的
return SUCCESS;
}
}
創建好的 Action 類需要在 Struts2 的核心配置文件中進行配置
Struts2 的核心配置文件為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>
<package name="default" namespace="/" extends="struts-default">
<!--訪問時使用 localhost:8080/helloworld 訪問-->
<action name="helloworld" class="com.nnngu.action.HelloWorldAction">
<!--結果集,即action類中 SUCCESS 返回的視圖-->
<result>
/result.jsp
</result>
</action>
</package>
</struts>
新建一個 result.jsp 文件,用來顯示 action 返回的視圖
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Action Result</title>
</head>
<body>
<h1>恭喜!成功配置好基本的struts2 環境</h1>
<h2>Hello nnngu!</h2>
</body>
</html>
最後運行項目,在瀏覽器訪問
在瀏覽器訪問 http://localhost:8080/helloworld
展現出來的內容是 result.jsp 的內容。
控制臺輸出 Action 的打印內容
到此,Struts2 就配置完成了。
Struts2 官方文檔:http://struts.apache.org/getting-started/
Struts2的配置和一個簡單的例子