ssm框架之struts2_day01

一: struts2概述:

JavaEE三大框架之一的web層框架,每次訪問action的時候,都會創建一次,是線程安全的,內置攔截器,數據操作,值棧等

二:

struts2解決問題:

 

三: 創建一個HellowWord程序:

1 :導入jar包:

2  創建action:

package cn.hr.action.demo;

import com.opensymphony.xwork2.ActionSupport;

public class HellowAction extends ActionSupport {
	
	/**
	 * 每次訪問Servlet,都會執行service()方法
	 * 每次訪問action,默認執行名稱excute方法
	 */
	@Override
	public String execute() throws Exception {
		System.out.println("execute....");
		return "ok";
	}
}

3 創建struts.xml配置文件,引入dtd約束和action訪問路徑配置,其中struts.xml核心配置文件名稱和位置都是固定的,位置必須在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="hellow" extends="struts-default" namespace="/">
		<!-- name訪問名稱 -->
		<action name="hellowAction" class="cn.hr.action.demo.HellowAction">
			<!-- 配置方法的返回值到頁面 -->
			<result name="ok">/hellow.jsp</result>
		</action>
	</package>
	
</struts>

4 配置struts2過濾器:

在web.xml下面加入過濾器, web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1">
  <display-name>struts2_day01</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>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>

5 在WebContent目錄下新建一個訪問成功的hellow.jsp頁面。 啓動tomcat訪問,得到結果:

 

二:圖解struts2的執行過程:

 

三: struts2核心配置文件:

1 名稱和位置固定的

2 在配置文件中主要三個標籤 package、action、result,標籤裏面的屬性

標籤package

1 類似於代碼包,區別不同的action,要配置action,必須首先寫package標籤,在package裏面才能 配置action

2 package標籤屬性

(1)name屬性

- name屬性值根功能本身沒有關係的,

- 在一個配置文件中可以寫多個package標籤,name屬性值不能相同的

(2)extends屬性

- 屬性值固定的,struts-default

- 寫了這個屬性之後,在package裏面配置的類具有action功能

(3)namespace屬性

- namespace屬性值和action標籤裏面的name屬性值構成訪問路徑

標籤package

1 action標籤配置action訪問路徑

2 action標籤屬性

(1)name屬性

- namespace屬性值和action標籤裏面的name屬性值構成訪問路徑

- 在package標籤裏面寫多個action標籤,但是action的name屬性值不能相同的

(2)class屬性

- action全路徑

(3)method屬性

- 比如在action裏面默認執行的方法execute方法,但是在action裏面寫其他的方法

- 讓action裏面多個方法執行,使用method進行配置

標籤result

1 根據action的方法返回值,配置到不同的路徑裏面

2 result標籤屬性

(1)name屬性

- 和方法返回值一樣

(2)type屬性

- 配置如何到路徑中(轉發或者重定向)

- type屬性默認值 做轉發操作

分模塊開發

1 單獨寫配置文件,把配置文件引入到核心配置文件中

Action編寫方式

開發中一般使用創建類,繼承類ActionSupport

訪問action的方法(重點)

1 有三種方式實現

第一種 使用action標籤的method屬性,在這個屬性裏面寫執行的action的方法

第二種 使用通配符方式實現

第三種 動態訪問實現(不用)

2 演示錯誤

(1)如果action方法有返回值,在配置文件中沒有配置,出現錯誤

(2)在action裏面的方法有返回值,如果有返回值時候類型必須是String

(3)action裏面的方法可以沒有返回值,沒有返回值時候,在result標籤不需要配置

- 把方法寫成void

- 讓返回值,返回 ”none”

 

使用action標籤method屬性

1 創建action,創建多個方法

2 使用method配置

缺陷:action每個方法都需要配置,如果action裏面有多個方法,配置很多的action

 

使用通配符實現(重點)

1 在action標籤裏面name屬性,name屬性值裏面寫 符號 *  星號

(1)* 理解: 表示匹配任意內容

- 比如訪問hello,* 可以匹配到

- 比如訪問add,* 可以匹配到

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章