struts2中一个表单中提交多个请求的例子(多个提交按钮)

 更新时间:2014年04月23日 10:08:08   作者:  
在很多Web应用中,为了完成不同的工作,一个HTML form标签中可能有两个或多个submit按钮,Struts2中提供了另外一种方法,使得无需要配置可以在同一个action类中执行不同的方法(默认执行的是execute方法)

使用这种方式也需要通过请求参来来指定要执行的动作。请求参数名的格式为
  action!method.action
  注:由于Struts2只需要参数名,因此,参数值是什么都可以。

下面我就给出一个实例程序来演示如何处理有多个submit的form:

主页面more_submit.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="submit.action">
        <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>

MoreSubmitAction.java

复制代码 代码如下:

package action;

import javax.servlet.http.*;
import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.interceptor.*;

public class MoreSubmitAction extends ActionSupport implements
        ServletRequestAware {
    private String msg;
    private javax.servlet.http.HttpServletRequest request;

    // 获得HttpServletRequest对象
    public void setServletRequest(HttpServletRequest request) {
        this.request = request;
    }

    // 处理save submit按钮的动作
    public String save() throws Exception {
        request.setAttribute("result", "成功保存[" + msg + "]");
        return "save";
    }

    // 处理print submit按钮的动作
    public String print() throws Exception {
        request.setAttribute("result", "成功打印[" + msg + "]");
        return "print";
    }

    public String getMsg() {
        return msg;
    }

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

structs.xml

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

    <package name="demo" extends="struts-default">
        <action name="submit" class="action.MoreSubmitAction">
            <result name="save">
                /result.jsp
            </result>
            <result name="print">
                /result.jsp
            </result>
        </action>
    </package>

 
</struts>

result.jsp

复制代码 代码如下:

<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>提交结果</title>
</head>
<body>
<h1>${result }</h1>
</body>
</html>

相关文章

  • java+sql2005 随机抽取试题的代码

    java+sql2005 随机抽取试题的代码

    先从题库中随机抽取十道题,然后将其保存在另一张表中并将其相应的题号变为一到十。便于接下来的其他操作。
    2011-05-05
  • Java Web开发之MD5加密用法分析

    Java Web开发之MD5加密用法分析

    这篇文章主要介绍了Java Web开发之MD5加密用法,较为详细的分析了JSP采用MD5加密的功能、特点及实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09
  • JSP利用过滤器解决request中文乱码问题

    JSP利用过滤器解决request中文乱码问题

    这篇文章主要介绍了JSP利用过滤器解决request中文乱码问题,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • 基于JSP的动态网站开发技术

    基于JSP的动态网站开发技术

    基于JSP的动态网站开发技术...
    2006-10-10
  • JBuilder2005单元测试之创建测试固件

    JBuilder2005单元测试之创建测试固件

    这篇文章主要介绍了JBuilder2005单元测试之创建测试固件
    2006-10-10
  • hibernate中的增删改查实现代码

    hibernate中的增删改查实现代码

    在hibernate中的增删改查的实现。hibernate是OR框架,也就是对象关系框架,有了 hibernate我们就不用再去写SQL语言,我们只需要操纵对象去进行增删改查。这里今天写的就是在如何应用hibernate实现增删改查。
    2009-01-01
  • jsp页面常用的查询及显示方法分析

    jsp页面常用的查询及显示方法分析

    这篇文章主要介绍了jsp页面常用的查询及显示方法,结合实例形式较为详细的分析了常用的jsp查询技巧与相关注意事项,需要的朋友可以参考下
    2016-08-08
  • JSP之EL表达式基础详解

    JSP之EL表达式基础详解

    这篇文章主要介绍了JSP之EL表达式基础详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • jsp实现剪子石头布小游戏

    jsp实现剪子石头布小游戏

    这篇文章主要为大家详细介绍了jsp实现剪子石头布小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-01-01
  • JSP学生信息管理系统

    JSP学生信息管理系统

    这篇文章主要为大家想详细介绍了JSP学生信息管理系统的实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-04-04

最新评论