最近遇到一個問題我很困惑。今天終於在無意間,發現瞭解決的辦法。問題盡然出在struts 的action類檔案中的方法名命名上。具體問題描述如下:
struts2設定檔部分如下:
<package name="servicedesk" namespace="/servicedesk" extends="itosm">
<action name="mainpage" class="serviceDeskAction" method="initServiceDesk">
<result name="success">/main/servicedesk.jsp</result>
</action>
<action name="tasklist" class="serviceDeskAction" method="getTaskList">
<result name="success" type="json">
<param name="root">serviceDeskVO.tasklist</param>
</result>
</action>
<action name="tasklist" class="serviceDeskAction" method="initTaskList">
<result name="success" type="json">
<param name="root">serviceDeskVO.tasklist</param>
</result>
</action>
</package>
-------------------------------------------------------------------------------------------------------
action檔案中有方法:
public String initServiceDesk(){
return SUCCESS;
}
public String getTaskList(){
return SUCCESS;
}
public String initTaskList(){
return SUCCESS;
}
----------------------------------------------------------------------------------------------------------
請求的url為:..../servicedesk/mainpage
-----------------------------------------------------
現象描述:我在上述方法的所有return 前都加了一個斷點。結果發現我請求的時候,先調用了initServiceDesk(),在調用了getTaskList();沒有調用方法initTaskList();
我一直很納悶為什麼會調用getTaskList 這個方法。後來才明白,可能方法名不能以get開頭。測試中方法initTaskList沒有被調用就很好的說明了這個問題。
看來方法命名很重要啊!而且我有一個習慣習慣在方法名前加get;看來以後得注意一下了!!!!