【SSH】strut2中Action標籤中method={1}的理解
阿新 • • 發佈:2019-02-09
一、前言
在最近使用ssh框架做的系統中,在struts2中的配置檔案中,總會寫類似下面的程式碼,其中中,結構有點亂,當初只是照著模板敲,沒有深度的思考。後面慢慢的開發發現了其中的玄機。
<struts>
<package name="department" namespace="/" extends="struts-default">
<action name="departmentAction_*" method="{1}" class="departmentAction">
<result name="listAction">WEB-INF/jsp/department/list.jsp</result>
<result name="action2action" type="redirectAction" >departmentAction_getAllDepartment.action</result>
<result name="addUI">/WEB-INF/jsp/department/add.jsp</result>
<result name="updateUI" >/WEB-INF/jsp/department/update.jsp</result>
</action>
</package>
</struts>
二、到底是什麼?
其實用到method={數字}的時候,相應的前面的action是要出現*萬用字元來搭配的。比如一個小例子:
<action name="user_*" class="UserAction" method="{1}">
在對應的jsp中:
<form action="user_userLogin2" method ="post">
那麼struts會將user_userLogin2這個action按照user_*的格式解析,把號對應位置的字串取出來,放到method={}這個中括號裡替代數字的位置,1就是指第一個號位置的字串。這裡看不出數字不同的區別,在:
<action name="*_*" class="com.xy.{1}Action" method="{2}">
中就看得明白了,你提交的action都會按格式分解,比如jsp裡是User_add,那麼就會變成:
class="com.xy.UserAction" method="{add}"
三、小結
通過這次深度的認識,對其中的一些玄機有了瞭解,就是代表了後面的操作。學習要深度的理解,理解了才能更加熟練。