2010-09-08 31 views
1

進出口新的Struts2的....我有以下幾個一些疑惑...Struts2的基本疑惑

一)在Struts2的,請問怎麼申請認定的struts.xml? (我們沒有在web.xml文件中定義struts.xml,這與我們在web.xml文件中定義struts-config.xml的Struts1不同,所以它如何看到struts.xml文件)

b)爲什麼我們爲我們的Action類寫了extends ActionSupport ..我見過很多沒有用其他預定義的Action類擴展的例子..如果我們不擴展任何其他預定義的動作類或實現Action,它如何在我們的Action類中找到​​方法或populate()方法接口方法

三)在什麼情況下,我們使用extends Action Support

+0

可能有太多的答案,或者對於這種格式,答案太長。請添加詳細信息以縮小答案集或隔離幾個段落中可以回答的問題。 – 2016-07-10 13:35:38

回答

3

a)如果你不重寫配置文件名(「配置」參數在Struts在web.xml中過濾器),然後它會默認爲「支柱.XML」。這只是一個硬編碼的默認值,因此「按慣例配置」。 b)該框架允許「簡單的舊Java對象」(POJO)用於動作。只要告訴它調用哪個方法(在struts.xml中),它將使用反射來找到這樣的方法(必須是無參數並返回一個字符串)並調用它。另一方面,一些接口用於附加功能,例如如果您的類實現了Preparable,那麼prepare()方法將在執行前自動調用(可能類似於Struts1中的「填充」?)

c )擴展ActionSupport完全是可選的,但可以訪問某些可能有用的功能,例如某些操作方法(如「輸入」,用於國際化的便捷方法等的默認實現)。

3

+1 to Todd's answer。

對於b):注意到不需要指定方法(儘管可以這樣做),默認情況下(「約定」)將調用​​方法。

對於c):延伸ActionSupport是可選的,而IMO相當頻繁。有時候也可以實施你自己的(比如說)BaseAction(它經常擴展ActionSupport)來分解你的web應用程序的通用功能,並使你的所有操作(或幾乎所有)都能擴展它。