最近遇到一个问题我很困惑。今天终于在无意间,发现了解决的办法。问题尽然出在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;看来以后得注意一下了!!!!