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...