1. 程式人生 > >Struts2學習【1】第一個完整程式

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 目錄:庫檔案;      

src 目錄:原始檔。

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寫的很好!