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

关于struts2 一个action多个submit按钮的问题
简单描述下,需求很简单。我在一个s:form中有2个submit按钮需要提交,但是不能使用js。
目前方式在网上找的例子,简单贴一下:

struts.xml
<package name="customer" namespace="/customer" extends="struts-default">
<result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="info" class="com.hx.er.action.customer.CustomerInfoAction">
<result name="save" type="redirect">
home-init
</result>
<result name="back" type="tiles">
customer-info
</result>
</action>
</package>

info.jsp
<s:form action="/customer/info" theme="simple" method="post">
<!-- 省略没必要的部分 -->
<s:submit name="save" method="info_save" value="保存" cssStyle="width:60px" />
<s:submit name="back" method="info_back" value="返回" cssStyle="width:60px" />
</s:form>

CustomerInfoAction
public class CustomerInfoAction extends ActionSupport {
public String save() {
System.out.println("save");
return "save";
}

public String back() {
System.out.println("back");
return "back";
}
}

结果如下:不管我点save还是back按钮。日志都提示我没有success这个result。加上success以后,系统就按照这个结果直接跳转了,并没有执行save()或back()。
补充下:我设置了一个拦截器,但是目测与拦截器关系似乎不大,删除拦截器以后,执行结果仍然没变。
环境:jdk7、struts2.3.15。

请各位协助解决。提前谢谢了。
struts2 action 多个submit

------解决方案--------------------
按钮提交都一个action
------解决方案--------------------
都是info那个方法
------解决方案--------------------
引用:
简单描述下,需求很简单。我在一个s:form中有2个submit按钮需要提交,但是不能使用js。
目前方式在网上找的例子,简单贴一下:

struts.xml
<package name="customer" namespace="/customer" extends="struts-default">
<result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="info" class="com.hx.er.action.customer.CustomerInfoAction">
<result name="save" type="redirect">
home-init
</result>
<result name="back" type="tiles">
customer-info
</result>
</action>
</package>

info.jsp
<s:form action="/customer/info" theme="simple" method="post">
<!-- 省略没必要的部分 -->
<s:submit name="save" method="info_save" value="保存" cssStyle="width:60px" />
<s:submit name="back" method="info_back" value="返回" cssStyle="width:60px" />
</s:form>

CustomerInfoAction
public class CustomerInfoAction extends ActionSupport {
public&nb