Struts2 動態方法呼叫

2022-05-06 18:18:09 字數 1458 閱讀 6413

struts2乙個action內包含多個請求處理方法的處理(三種方式)

struts1提供了dispatchaction,從而允許乙個action內包含多個請求處理方法。struts2也提供了類似的功能。處理方式主要有以下三種方式:

1.1. 動態方法呼叫:

dmi:dynamic method invocation 動態方法呼叫。

動態方法呼叫是指:表單元素的action不直接等於某個action的名字,而是以如下形式來指定對應的動作名:

則使用者的請求將提交到名為」useropt」的action例項,action例項將呼叫名為」login」方法來處理請求。同時login方法的簽名也是跟execute()一樣,即為public string login() throws exception。

注意:要使用動態方法呼叫,必須設定struts2允許動態方法呼叫,通過設定struts.enable.dynamicmethodinvocation常量來完成,該常量屬性的預設值是true。

struts 2 動態方法呼叫

1.在jsp中如何得到action的屬性:

(1).$

(2).valuestack vs = (valuestack)request.getattribute("struts.valuestack");

vs.findvalue("tip")

2.動態方法呼叫

動態方法呼叫是指,表單元素的action並不是直接等於某個action的名字,而是以action='actionname!methodname.action'來指定form的屬性.

action裡可以包含乙個execute()方法和多個其它邏輯.

3.為action元素指定method屬性

即是將乙個action處理類定義成多個邏輯action,指定action的method屬性,則可以讓action類來呼叫不同的方法.

特點是只有乙個action類,action類裡有幾個處理邏輯struts.xml裡就包含著幾個片斷.也就是action類的每個處理方法被對映成乙個邏輯action.

缺點是多個action裡定義的方法絕大部分相同,這種定義是相當冗餘的.

4.使用萬用字元

在配置元素時,需要指定name,class,method屬性都可支援萬用字元,這種使用萬用字元的方式是另一種形式的動態方法呼叫.

當我們使用萬用字元定義action的name屬性時,就相當於乙個元素action定義了多個邏輯action.

(1).....

只要url是*action.

action的模式,都可以能過該action類處理.

但該method屬性使用了乙個表示式,該表示式的值就是name屬性值中的第乙個*的值.

(2).....

只要url是*action.action的模式,都能通過相應的ation類處理.

如:url為registaction.action,則呼叫lee.registaction類的excute方法來處理

Struts2動態方法呼叫

第一種 index.jsp中 struts.xml中 registaction中 通過表單中form裡action 號前面的rgistaction 去配置檔案裡找到action name registaction 然後找到對應的class new乙個例項出來最後呼叫!號後面的login方法。第二種 ...

Struts2動態方法呼叫

動態方法呼叫 在struts2中動態方法呼叫有三種方式,動態方法呼叫就是為了解決乙個action對應多個請求的處理,以免action太多 第一種方式 指定method屬性 這種方式我們前面已經用到過,類似下面的配置就可以實現 redirect web inf jsppage chapter2 pla...

Struts2動態方法呼叫

動態方法呼叫 在struts2中動態方法呼叫有三種方式,動態方法呼叫就是為了解決乙個action對應多個請求的處理,以免action太多 第一種方式 指定method屬性 這種方式我們前面已經用到過,類似下面的配置就可以實現 redirect web inf jsppage chapter2 pla...