1. 程式人生 > >【SSH】strut2中Action標籤中method={1}的理解

【SSH】strut2中Action標籤中method={1}的理解

一、前言

      在最近使用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}"

三、小結

      通過這次深度的認識,對其中的一些玄機有了瞭解,就是代表了後面的操作。學習要深度的理解,理解了才能更加熟練。