struts2中action的配置請求有三種方式web
如:<action name="test" class="cn.dhcc.action.TestAction" method="test"></action>spa
這樣一個action就僅僅對應一個處理方法io
http://xxxxx:8080/web/test/test.action----對應就是TestAction的test()方法class
這種方式比較麻煩,一個方法對應一個action配置test
這種方式不用配置allowedMethods,由於,請求的方法test就等於了ActionConfig的methodName屬性了struts2
如:<action name="*Action" class="loginAction" method="{1}">配置
請求http://xxxxx:8080/web/test/loginAction.action----對應就是loginAction的login()方法請求
http://xxxxx:8080/web/test/logoutAction.action----對應就是loginAction的logout()方法方法
這種方式能夠動態的指定請求方法,但可讀性很差,由於佔位符是name的一部分,這麼以來就會出現loginAction logoutAction--沒法準確的知道究竟是哪一個action類struts
這種方式必定要配置allowedMethods指明能夠動態訪問的方法,由於,動態方法不會等於ActionConfig的methodName屬性又不等於默認的execute,只能經過是否配置了allowedMethods來判斷可訪問性
如:<action name="testAction" class="cn.dhcc.action.TestAction" ></action> 配置action的時候,不指明方法名。請求的時候指定
如:http://xxxxx:8080/web/test/testAction!test.action----對應就是TestAction的test()方法
http://xxxxx:8080/web/test/testAction!list.action----對應就是TestAction的list()方法
這種方式也能夠動態的指定請求方法,而且可讀性好,由於一看就知道test list都是同一個action類,這對於一個模塊的多個方法(一個模塊一個類來表示),能夠準確的知道所在的是哪一個模塊,推薦使用
這種方式也必定要配置allowedMethods指明能夠動態訪問的方法,由於,動態方法不會等於ActionConfig的methodName屬性又不等於默認的execute,只能經過是否配置了allowedMethods來判斷可訪問性