1. 程式人生 > >在eclipse中進行Struts2專案的配置

在eclipse中進行Struts2專案的配置

輸入專案名確認即可,然後就建立了一個普通的web專案,和之前的沒有區別,另外注意要建立web.xml配置檔案

然後,開啟我們剛才下載的Struts2中lib目錄,這下面有非常多的Struts類庫,並不是完全需要,一般情況下我們只匯入常用的即可,其他的到需要的時候再匯入,需要的jar包如下圖:

複製到lib目錄後,eclipse專案會自動匯入web的類庫

然後,配置web.xml,在<web-app>節點之間新增下面程式碼,也就是Struts2的框架的過濾器

	<welcome-file-list><!-- 定義主介面 -->
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
	<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-pattern>/*</url-pattern>
	</filter-mapping>

      配置過濾器是Struts2能跑起來最基本的前提,工作原理就是當tomcat容器啟動時,首先載入web.xml,所以會載入其中定義的過濾器,因此StrutsPrepareAndExecuteFilter過濾器會過濾專案下所有的請求,然後後來利用過濾器捕獲action請求,從而呼叫相應的方法進行處理,這就是Struts2的大致工作情況,StrutsPrepareAndExecuteFilter類出現可以讓開發人員自定義過濾器,從而在請求到達處理之間對使用者請求進行處理

  配置好web.xml後需要建立Struts2的核心配置檔案,位置就是專案下的src目錄中,建立struts.xml檔案,他負責配置所有的請求對應各種類或者方法,所以是核心配置檔案,基本的結構如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>


</struts>

頭部是宣告,我們所有的配置都寫在<struts></struts>標籤的內部,那麼寫一個最簡單的配置:

<package name="default" namespace="/" extends="struts-default">
        <action name="hellostruts2" class="net.zengzhiying.action.HelloStruts2Action">
            <result>/result.jsp</result>
        </action>
        
        <action name="login" method="login" class="net.zengzhiying.action.HelloStruts2Action">
            <result>/login.jsp</result>
        </action>
    </package>

在這裡,一個action就負責處理一個請求,packge我們使用的預設包,當有多個packge時,name一定要區分開,namespace就是訪問的空間,我們的專案名是HelloStruts2,如果名稱空間是/test那麼應該訪問,http://localhost:8080/HelloStruts2/test/自定義的action

第一個action對應的訪問路徑就是http://localhost:8080/HelloStruts2/hellostruts2.action當然預設也可以不加action

  第二個action對應的就是http://localhost:8080/HelloStruts2/login.action

  然後去建立一個Action類,就是HelloStruts2Action,類名命名必須是以Action結尾的駝峰命名,並且繼承於ActionSupport類,具體程式碼如下:

package net.zengzhiying.action;

import com.opensymphony.xwork2.ActionSupport;

public class HelloStruts2Action extends ActionSupport {
    
    private static final long serialVersionUID = 1L;

    @Override
    public String execute() throws Exception {
        System.out.println("執行Action");
        
        return SUCCESS;
    }
    
    //新增自定義方法
    public String login() {
        return SUCCESS;
    }

如果前面配置檔案沒指定method屬性,預設訪問的方法就是execute方法,我們另外還自定義了一個login方法,SUCCESS常量返回了預設的<result>指定的檢視,下面建立對應的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">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>成功檢視</title>
</head>
<body>
    Hello Struts2
</body>
</html>

另外login.jsp的建立也是一樣,就不列出了,現在一個基本的Struts2應用就建好了,現在啟動伺服器,訪問即可看到結果

然後我麼看控制檯也進行了列印輸出

https://images2015.cnblogs.com/blog/734555/201512/734555-20151226233410890-1758748310.jpg

同時訪問login也是相同的效果