我在struts.xml中声明了以下操作:
<action path="/updateAccountInfo"
type="org.myCompany.UpdateAccountAction"
name="myAccountForm"
scope="session"
validate="true"
parameter="method"
input="/updateAccountInfo.jsp">
<forward name="success" path="/updateAccountInfo.jsp" />
</action>
在我的JSP页面中,我有以下形式:
<html:form action="/updateAccountInfo.do">
<input type="hidden" name="method" value="sendMessage" />
在我的java类中,我有以下方法:
public final ActionForward sendMessage(final ActionMapping mapping, final ActionForm form, final HttpServletRequest request, final HttpServletResponse response) throws Exception {
System.out.println("sending");
return null;
}
Struts不是运行sendMessage,而是调用execute方法。为什么?我的struts-config错了吗?或者我错过了另一个配置设置?
答案 0 :(得分:8)
请先确保您的操作扩展了DispatchAction。您可能不应该覆盖该类中的execute方法,因为该方法负责提取请求参数并调用相应的方法。如果覆盖执行,则此逻辑将不再执行。
答案 1 :(得分:1)
您的UpdateAccountAction是否扩展了DispatchAction? Here's a working example做你想做的事。
答案 2 :(得分:0)
首先是在html中:form action =“/ updateAccountInfo.do”&gt;你提到了updateAccountInfo.do并且想要调用sendMessage。怎么可能?它是不同的。
其他的是你的需要需要调度动作而不是动作类。看起来你需要多个方法来调用struts,所以建议使用dispatchaction类。
有关如何使用调度操作的详细信息以及何时需要,请参阅mkyon网站。