真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Struts2下怎么配置Action-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“Struts2下怎么配置Action”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Struts2下怎么配置Action”吧!

創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供米脂網(wǎng)站建設(shè)、米脂做網(wǎng)站、米脂網(wǎng)站設(shè)計、米脂網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、米脂企業(yè)網(wǎng)站模板建站服務(wù),10多年米脂做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。

Action基本配置

Struts 2使用package包來組織Action,在struts.xml中通過使用package下的action元素來配置Action。在配置Action時,需要指定action元素的name和class屬性。

  1. name屬性:指定Action的名字,即指明該Action所處理的請求的URL,例如,若name屬性值為login,則請求該Action的URL是login.action

  2. class屬性:指定Action的實現(xiàn)類,該屬性不是必須的,如果沒有指定class屬性的值,則默認(rèn)使用ActionSupport類。

Action基本配置代碼如下:


  

Action只是一個邏輯控制器,不直接對用戶請求生成任何相應(yīng)。因此,Action處理完用戶請求后需要將指定的視圖資源呈現(xiàn)給用戶,即配置Action時,應(yīng)該配置邏輯視圖和物理視圖資源之間的映射。

配置邏輯視圖和物理視圖之間的映射關(guān)系是通過元素來定義的,每個元素定義邏輯視圖和物理視圖之間的一個映射:


  
  /success.jsp
  /error

動態(tài)方法調(diào)用

有時一個Action內(nèi)需要包含多個控制處理邏輯。例如,對于同一個表單,當(dāng)用戶通過不同的提交按鈕進行提交時,系統(tǒng)需要使用Action的不同方法進行處理用戶請求,此時就需要讓Action中包含多個控制處理邏輯。

Struts 2框架允許一個Action中包含多個處理邏輯。在Struts 2中請求一個Action中的不同處理邏輯方法的方式成為DMI(Dynamic Method Invocation,動態(tài)方法調(diào)用),其請求格式如下:

(ActionName)!(methodName).action
  1. ActionName是Action的名字,即struts.xml中配置的Action的name屬性值;

  2. methodName是Action實現(xiàn)類中處理邏輯的方法名。

動態(tài)方法調(diào)用示例

//訪問product中的edit()方法
product!edit.action

productList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>



商品列表


  
    
      商品ID
      商品名稱
      數(shù)量
      操作
    
    
      1001
      小米手機
      128
      編輯
      刪除
    
    
      1002
      佳能相機
      100
      編輯
      刪除
    
  

```

上述代碼中,商品列表中的每個商品使用超鏈接進行編輯、刪除操作。超鏈接中href屬性值采用動態(tài)方法調(diào)用的方式進行鏈接請求,并將產(chǎn)品ID作為參數(shù)傳遞給Action。

ProductAction.java代碼如下:

package com.qst.chapter03.action;

import com.opensymphony.xwork2.ActionSupport;

public class ProductAction extends ActionSupport {
  private int productId;

  public int getProductId() {
    return productId;
  }

  public void setProductId(int productId) {
    this.productId = productId;
  }

  // 編輯商品
  public String edit() {
    System.out.println("編輯商品" + productId);
    // ...省略一些編輯商品的業(yè)務(wù)
    return "edit";
  }

  // 刪除商品
  public String del() {
    System.out.println("刪除商品" + productId);
    // ...省略一些刪除商品的業(yè)務(wù)
    return "del";
  }
}

上述代碼創(chuàng)建了兩個業(yè)務(wù)方法edit()和del()方法。當(dāng)用戶單擊不同的鏈接時,系統(tǒng)將交給對應(yīng)的方法處理。

接下來編寫edit.jsp和del.jsp頁面:

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>




編輯商品


  ${param.productId}商品編輯

<%@ page language="java" contentType="text/html; charset=UTF-8"
  pageEncoding="UTF-8"%>




刪除商品


  ${param.productId}商品刪除成功!

在struts.xml中配置ProductAction代碼如下所示:





  
  
  

  
  
    
    
      /edit.jsp
      /del.jsp
    
  

上述配置文件配置了常量struts.enable.DynamicMethodInvocation的值為true,這樣Struts 2才會開啟動態(tài)方法調(diào)用,否則默認(rèn)不會開啟動態(tài)方法調(diào)用。

使用method屬性及通配符

除了動態(tài)方法調(diào)用之外,Struts 2還提供了另一種處理方法,即將Action處理類定義成多個邏輯Action。此時,在配置元素時,需要指定name、class和method屬性。這樣就可以讓Action調(diào)用指定方法,而不是execute()方法來處理用戶請求。

例如可以將ProductAction類定義成兩個邏輯Action,即將該類中的edit()和del()方法映射成不同的Action,示例代碼如下:


  /edit.jsp


  /del.jsp

上述代碼定義了editproduct和delproduct兩個邏輯Action,這兩個Action對應(yīng)的處理類都是ProductAction,但處理邏輯不同。分別對應(yīng)的是edit()和del()方法。

上面的這種方式雖然能夠?qū)崿F(xiàn),但兩個定義絕大部分是相同的,帶來冗余問題。Struts 2還提供了通配符“ * ”來解決這個問題。利用通配符在定義Action的name屬性時使用模式字符串(即用“ * ”代表一個或多個任意字符串),接下來就可以在class、method屬性以及子元素中使用{N}的形式代表前面第N個星號“ * ”所匹配的子串。

* 通配符


  
  
    
      /edit.jsp
      /del.jsp
    
  

上述代碼Action的name屬性值為“ * product”,使用了通配符,此時定義的不是一個普通的Action,而是定義了一系列的邏輯Action,只要用戶請求的URL符合“ * product.action”的模式,都可以通過ProductAction處理。此外,必須要指定method屬性,method屬性用于指定用戶請求的方法。在method屬性中使用表達式{1},代表該表達式就是name屬性值中第一個“ * ”指代的值。通過上述配置規(guī)則可以達到與動態(tài)調(diào)用同樣的運行效果。

此外Struts 2允許在class屬性和method屬性中同時使用表達式,例如:

復(fù)制代碼 代碼如下:


以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。

到此,相信大家對“Struts2下怎么配置Action”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


分享名稱:Struts2下怎么配置Action-創(chuàng)新互聯(lián)
轉(zhuǎn)載來于:http://weahome.cn/article/dshojs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部