調用Action中其餘方法的兩種實現

在struts2中,咱們能夠經過兩種方法來調用action類中除了execute以外的其餘方法。而這兩種方法都是struts框架直接支持的。

而在之前,而能夠在form頁面提交的時候指定一個特定的參數,如actio_type來指定要執行action中的哪一個方法,在action接受到參數後,判斷參數的值,用if,或switch語句來判斷執行哪一個方法。

下面敘述strut框架直接支持的兩種調用方法。
1,method屬性,
method屬下是指在struts.xml文件中,配置action的時候指定method屬性。具體示例以下;

請注意其中的藍色部分
文件名: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.0.dtd">

<struts>

    <package name="default" extends="struts-default">
         <action name="login" class="struts2.login.LoginAction">
            <result name="success">result.jsp</result>
        </action>
        
         <action name="add" class="struts2.login.LoginAction" method="add">
            <result name="success">add.jsp</result>
        </action>
        <action name="query" class="struts2.login.LoginAction" method="query">
            <result name="success">query.jsp</result>
        </action>
        <action name="delete" class="struts2.login.LoginAction" method="delete">
            <result name="success">delete.jsp</result>
        </action>
        <action name="modify" class="struts2.login.LoginAction" method="modify">
            <result name="success">modify.jsp</result>
        </action>
    </package>

</struts>

Action文件:
文件名LoginAction.java
文件內容:

package struts2.login;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction  extends ActionSupport{
    
     public String add() {
        System.out.println ("增長");
        return SUCCESS;
    }
    public String modify() {
        System.out.println ("修改");
        return SUCCESS;
    }
    public String delete() {
        System.out.println ("刪除");
        return SUCCESS;
    }
    public String query() {
        System.out.println ("查詢");
        return SUCCESS;
    }
    
}

而後創建一個jsp文件:
文件名;list2.jsp
文件內容:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>

<a href=\'#\'" /a>
<a href="query.action">查詢</a>
<a href="modify.action">修改</a>
<a href="delete.action">刪除</a>

在分別創建四個結果jsp文件,add.jsp,modify.jsp,delete.jsp,query.jsp
文件內容:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>


增長(修改/刪除/查詢) 成功。

最後咱們執行一下,從列表的頁面點擊不一樣的鏈接,能夠看到跳轉到了不一樣的頁面。同時能夠看到console中各個不一樣的方法所輸出的信息。
以下圖:







2,DMI(動態直接調用)
這種方法,不須要進行struts.xml的配置。而是在html或者jsp頁面中經過標示符號指定了要調用的方法。 關鍵的標示符號爲"!"號
示例,
創建一個list.jsp文件,內容以下;
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>

<a href="login!add.action">增長</a>
<a href="login!query.action">查詢</a>
<a href="login!modify.action">修改</a>
<a href="login!delete.action">刪除</a>

action文件同方法1中的action文件,

struts.xml文件同方法1中的內容,可是要注意,此次當點擊頁面中的鏈接的時候,會使用到struts.xml文件中的紅色的部分。因此最後返回的則是result.jsp文件。

result.jsp文件內容:
<%@ page contentType="text/html; charset=gb2312" %>
<%@ taglib uri="/struts-tags" prefix="s"%>

操做成功

好,咱們執行如下,能夠看到當點擊不一樣的鏈接的時候,能夠在控制檯窗口中輸出,各個方法中的log信息。可是無論點擊那個鏈接,所返回到的都是result.jsp頁面。





相關文章
相關標籤/搜索