我在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错误吗?还是我错过了另一个配置设置?
请首先确保您的操作扩展了DispatchAction。您可能不应覆盖该类中的execute方法,因为该方法负责提取请求参数并调用相应的方法。如果您覆盖执行,则该逻辑将不再执行。