在eclipse中進行Struts2項目的配置


  Struts2是一個比較出色的基於MVC設計模式的框架,是由Struts1和WebWork發展而來的,性能也比較穩定,現在是Apache軟件基金會的一個項目,下面就來配置Struts2進行初始化的開發

  Struts2對環境要求不高,JDK版本1.5以上,ServletAPI在2.5以上,Tomcat版本在6.0以上即可,當然更推薦使用最新版本

  首先去Apache官網下載Struts2的類庫,http://www.apache.org最下方的Struts項目超鏈接http://struts.apache.org,進入Struts首頁如下:

  

  點擊Download按鈕進入下載界面,

  

  目前Struts最新版本是2.3.24.1,分為apps項目案例,lib核心驅動,docs文檔和src框架源碼,根據需要進行下載,我這里下載的struts-2.3.24.1-all.zip這其中包括所有的包,下載到本地解壓出來即可,這個頁面中還有之前版本的下載鏈接,也包括struts1的下載鏈接

  如果想下載所有的歷史包,鏈接是:http://people.apache.org/builds/struts/

  然后打開eclipse for javaEE,新建動態網站項目

  

  輸入項目名確認即可,然后就建立了一個普通的web項目,和之前的沒有區別,另外注意要創建web.xml配置文件

  

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

  

  復制到lib目錄后,eclipse項目會自動導入web的類庫

  然后,配置web.xml,在<web-app>節點之間添加下面代碼,也就是Struts2的框架的過濾器

1     <filter>
2         <filter-name>struts2</filter-name>
3         <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
4     </filter>
5     
6     <filter-mapping>
7         <filter-name>struts2</filter-name>
8         <url-pattern>/*</url-pattern>
9     </filter-mapping>

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

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

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

  頭部是聲明,我們所有的配置都寫在<struts></struts>標簽的內部,那么寫一個最簡單的配置:

1     <package name="default" namespace="/" extends="struts-default">
2         <action name="hellostruts2" class="net.zengzhiying.action.HelloStruts2Action">
3             <result>/result.jsp</result>
4         </action>
5         
6         <action name="login" method="login" class="net.zengzhiying.action.HelloStruts2Action">
7             <result>/login.jsp</result>
8         </action>
9     </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類,具體代碼如下:

 1 package net.zengzhiying.action;
 2 
 3 import com.opensymphony.xwork2.ActionSupport;
 4 
 5 public class HelloStruts2Action extends ActionSupport {
 6     
 7     private static final long serialVersionUID = 1L;
 8 
 9     @Override
10     public String execute() throws Exception {
11         System.out.println("執行Action");
12         
13         return SUCCESS;
14     }
15     
16     //新增自定義方法
17     public String login() {
18         return SUCCESS;
19     }
20     
21 }

  如果前面配置文件沒指定method屬性,默認訪問的方法就是execute方法,我們另外還自定義了一個login方法,SUCCESS常量返回了默認的<result>指定的視圖,下面建立對應的jsp文件

  result.jsp

 1 <%@ page language="java" contentType="text/html; charset=UTF-8"
 2     pageEncoding="UTF-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 7 <title>成功視圖</title>
 8 </head>
 9 <body>
10     Hello Struts2
11 </body>
12 </html>

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

  

  然后我么看控制台也進行了打印輸出

  

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

  

  以上就是基本的配置了,另外在配置文件struts.xml中還可以配置感嘆號、通配符等多種靈活的訪問方式,還可以配置訪問后綴等參數,同時Struts2框架強大的功能更遠不止這些,還需要不斷地學習研究

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM