Struts2學習【1】第一個完整程式
1、開發環境:Eclipse Java EE IDE for Web Developers. Version: Mars.1 Release (4.5.1)
2、下載Struts2,網站:http://struts.apache.org。下載版本:struts-2.3.24.3-all.zip,解壓:
apps目錄:例程; docs目錄:官方文件; lib 目錄:庫檔案;
3、建立專案
Eclipse中選擇File-New-Dynamic Web Project建立動態web專案struts2Hello。
4、匯入基礎包
即將struts-2.3.24.3/lib資料夾下的幾個重要jar檔案複製貼上到struts2Hello專案的WebContent/WEB-INF/lib資料夾下。需要複製的jar檔案可直接參考struts-2.3.24.3/app資料夾下struts2-blank例程,可將struts-2.3.24.3\apps\struts2-blank\WEB-INF\lib資料夾下的jar檔案全部複製貼上到web專案下。
5、配置過濾器
對struts2Hello專案的WebContent/WEB-INF/web.xml進行配置。
可以參照例程struts2-blank中的web.xml進行配置。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>struts2Hello</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
StrutsPrepareAndExecuteFilter是Struts2框架的入口,用於過濾所有請求。
<filtering-mapping>中,<url-pattern>/*</url-pattern>表示過濾器struts2攔截所有以/的請求,若換成<url-pattern>*.action</url-pattern>表示過濾器struts2只攔截*.action的請求。
6、在struts2Hello專案的src資料夾下新建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>
<package name="default" namespace="/" extends="struts-default">
<action name="hehe1" class="Hello">
<result name="success">/HelloWorld.jsp</result>
</action>
</package>
</struts>
過濾器struts2攔截到action名為hehe1的url請求,就會對映到Action類Hello進行處理。Action類符合一定要求,返回一個字串,然後比較<result>標籤中name屬性和Action類返回的字串,若相同則跳轉到對應jsp網頁。
7、建立jsp檔案
在struts2Hello/WebContent資料夾下新建HelloWorld.jsp檔案。
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>第一個程式</title>
</head>
<body>
<s:property value="message"/>
</body>
</html>
<%@ taglib prefix="s" uri="/struts-tags" %>表示引入struts2標籤,<s:property value="message"/>表示在獲取Action類中getMessage()方法的返回結果。struts2標籤中都是自動取getVal變數名()方法中變數名的小寫作為變數進行前後臺的轉換。
8、建立Action類
在src下預設包建立Hello類。
import com.opensymphony.xwork2.ActionSupport;
public class Hello extends ActionSupport{
private static final long serialVersionUID = -4991273063578759239L;
private String message;
public String getMessage()
{
return message;
}
@Override
public String execute() throws Exception
{
message = "Running...";
return SUCCESS;
}
}
一般直接繼承ActionSupport類,主要作用是返回字串,用於struts.xml對映。
9、執行
在瀏覽器訪問http://localhost:8080/struts2Hello/hehe1.action,其中字尾名“.action”可以省略。
訪問的格式是專案名/action名,和過濾器設定有關。
10、整個程式的檔案目錄
文章http://blog.csdn.net/axwolfer/article/details/40057941寫的很好!