我遇到下面的代码有问题,任何人都可以解释为什么该方法可能不会被激发jobListAction?提交表单后,“安装程序”会被调用两次。总之,我似乎无法使用struts按钮来调用多个方法。任何指针/要检查的东西?Struts2提交按钮方法调用不会触发
public class JobListAction {
public String execute() {
System.out.println("setup");
}
public String deactivate() {
System.out.println("called");
}
public String callonme()
{
}
}
JSP:
<s:form id="recordsListForm" method="post" action="jobList">
<s:submit type="button" action="deactivate" value="Deactivate Selected Jobs" method="deactivate" />
<s:submit type="button" action="callonme" value="CallonMe" method="callonme" />
</s:form>
struts.xml的
<!-- Job List -->
<action name="jobList" class="JobListAction">
<result name="input">/jsp/admin/jobList.jsp</result>
<result name="success">/jsp/admin/jobList.jsp</result>
</action>
<!-- Job List - Deactivate Job -->
<action name="deactivate" class="JobListAction" method="deactivate">
<result name="input">/jsp/admin/jobList.jsp</result>
<result name="success">/jsp/admin/jobList.jsp</result>
</action>
<action name="callonme" class="JobListAction" method="callonme">
<result name="input">/jsp/admin/jobList.jsp</result>
<result name="success">/jsp/admin/jobList.jsp</result>
</action>
再一次,所有这些都不应该是必须的......并且不起作用,因为现在你对同一个URL有一堆定义:它如何知道def哪个动作需要调用“/ jobList”?操作名称必须是唯一的,因为它是用来确定要调用的操作/方法的。 –
@DaveNewton - 尝试了一个替代解决方案,该行动具有唯一名称,并指定了提交操作方法。仍然没有果汁。 – Paul
如果没有我在回答中询问的信息,我不知道如何提供帮助 - 并不是要求占用空间。但是现在你在*提交按钮*和*动作配置中定义了方法,并且我怀疑它会起作用,尽管我从未尝试过,因为它是多余的。 –