处理一个 form 多个 submit的问题

fei得更高 fei得更高 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我照着Struts2教程做了一个处理一个 form 多个 submit的demo
struts.xml:

<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="HelloWorld" extends="struts-default">
<action name="HelloWorld" class="com.hengrensoft.study.HelloWorldAction">
<result>/HelloWorld.jsp</result>
</action>
<action name="Sum" class="com.hengrensoft.study.SumAction">
<result name="positive">/positive.jsp</result>
<result name="negative">/negative.jsp</result>
</action>
<action name="MultiSubmit" class="com.hengrensoft.study.MultiSubmitAction">
<result name="save">/SubmitResult.jsp</result>
<result name="print">/SubmitResult.jsp</result>
</action>
<!-- Add your actions here -->
</package>
</struts>


MultiSubmit.jsp

<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>My JSP 'hello.jsp' starting page</title>
</head>
<body>
<s:form action="MultiSubmit" >
<s:textfield name="msg" label="输入内容"/>
<s:submit name="save" value="保存" align="left" method="save"/>
<s:submit name="print" value="打印" align="left" method="print" />
</s:form>
</body>
</html>

MultiSubmitAction.java

package com.hengrensoft.study;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.interceptor.ServletRequestAware;

import com.opensymphony.xwork2.ActionSupport;

public class MultiSubmitAction extends ActionSupport implements ServletRequestAware
{

/**
*
*/
private static final long serialVersionUID = 1L;

private HttpServletRequest request;
private String msg;

public String getMsg()
{
return msg;
}
public void setMsg(String msg)
{
this.msg = msg;
}

public String save()
{
System.out.println("exe saving...");
request.setAttribute("result", "成功保存[" + msg + "]");
return "save";
}

public String print()
{
System.out.println("exe print...");
request.setAttribute("result", "成功打印[" + msg + "]");
return "print";
}

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


@Override
public void setServletRequest(HttpServletRequest request)
{
this.request = request;
}

}


结果在MultiSubmit.jsp那里点击保存,执行的是execute那里,没有去save执行,我用的是struts-2.5.20,请教大家,这是什么原因造成的?

...全文
评论 12
收藏 已收藏
分享
返回顶部
fei得更高
Web 开发 81,108 成员 341,721 内容