1. 程式人生 > >struts2框架的搭建步驟

struts2框架的搭建步驟

struts2框架的搭建步驟

1.建立 web project

2.匯入所需的jar包(前5種jar是必須,其餘的選用)

xwork-core-2.3.24.jar
struts2-core-2.3.24.jar
ognl-3.0.6.jar
freemarker-2.3.22.jar
commons-lang3-3.2.jar

log4j-core-2.2.jar
log4j-api-2.2.jar
javassist-3.11.0.GA.jar
commons-io-2.2.jar
commons-fileupload-1.3.1.jar
asm-tree-3.3.jar
asm-commons-3.3.jar
asm-3.3.jar

3.編寫實體類(POJO)

pojo:不要繼承任何父類,也不需要實現任何介面

public class HelloAction {
	public String hello(){
		System.out.println("hello world");
		return "success";
	}
}

 

4.在src下建立名為struts.xml檔案

引入dtd約束

 <!DOCTYPE struts PUBLIC
	"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
	"http://struts.apache.org/dtds/struts-2.3.dtd">

在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:將action配置封裝,就是可以在package中配置狠多個action
		name:給包起個名字,起到標識作用,隨便起不要與其他包名重複
		namespace屬性:給action的訪問路徑中定義個一個名稱空間  
		extends:繼承一個指定包 
		abstract:包是否為抽象,標識性屬性,標識該包不能獨立執行,專門被繼承
	 -->
	<package name="hello" namespace="/hello" extends="struts-default">
		<!-- action元素:配置action類
			name屬性:決定了Action訪問資源名
			class屬性:action的完整類名
			method屬性:指定呼叫Action中的哪個方法來處理請求
		 -->
		<action name="HelloAction" class="cn.test.HelloAction" method="hello">
			<!-- result元素:結果配置
				name屬性:標識結果處理的名稱,與action方法的返回值對應
				type屬性:指定呼叫哪一個result類來處理結果,預設使用轉發 (可以檢視struts-default.xml檔案中的):
				<result-type name="dispatcher" class="org.apache.struts2.dispatcher.ServletDispatcherResult" default="true"/>
				其中的default="true" 表示預設
				標籤體:填寫頁面的相對路徑
			 -->
			<result name="success">/index.jsp</result>
		</action>
	</package>
</struts>

5.開啟tomcat 訪問地址http://localhost:8080/hello/HelloAction

此時顯示的就是index.jsp的頁面中的內容 

哈哈~~~~~都是騙你的啊,單純的人類,這是不是你最喜歡看到的畫面

 

離成功還有一步之遙,還缺少的最重要的配置項在web.xml中配置struts2的核心過濾器

 <!-- struts2核心過濾器 -->
  <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>

再次訪問相應的資源路徑,驚喜就在前方,別放棄