日期:2014-05-17  浏览次数:21119 次

[struts2][标注][多个action对应一个class问题]
项目xml中有很多这种配置,即一个class对应多个action name,
现在想使用struts2的标注配置(不再使用xml,直接在代码中使用标注)来代替如下配置
应该如何添加呢?

<action name="taskpointAction" class="tfMissionInfoAction">
<result name="list">/taskpoint/task/mytask_list.jsp</result>
<result name="itf">/taskpoint/task/mytask_itf.jsp</result>
<result name="toListMethod" type="redirectAction">
<param name="actionName">taskpointAction!list.action</param>
<param name="sqlFlag">${sqlFlag}</param>
<param name="progId">${progId}</param>
<param name="msg">${msg}</param>
</result>
</action>
<action name="depttaskAction" class="tfMissionInfoAction">
<result name="list">/task/depttask/mytask_list.jsp</result>
<result name="itf">/task/depttask/mytask_itf.jsp</result>
<result name="toListMethod" type="redirectAction">
<param name="actionName">depttaskAction!list.action</param>
<param name="sqlFlag">${sqlFlag}</param>
<param name="progId">${progId}</param>
<param name="msg">${msg}</param>
</result>
</action>
struts action class xml 标注

------解决方案--------------------
加入struts2-convention-plugin.jar,这些东西自己看下文档据知道了还要拿出来提问,使用@Actions注解可以写在类上或方法上例如:

@Actions({
@Action(value="taskpointAction",results={
@Result(name="list",location="/taskpoint/task/mytask_list.jsp"),
@Result(name="itf" location="/taskpoint/task/mytask_itf.jsp"),
@Result(name="toListMethod" location="taskpointAction!list.action",type="redirect",
params={"sqlFlag",sqlFlag,"progId",progId,"msg",msg})//参数key0,value0,key1,value1....
}),//还有的话就接着配@Result
@Action(value="depttaskAction")//这里再配你的模仿上一个Action的配置
})public TfMissionInfoAction extends ActionSupport{
}