`
yxl276
  • 浏览: 9998 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

(struts2.0)一个form,多个提交

阅读更多

一个form,多个提交:
只须在jsp的submit标签中添加:
   <s:submit value="%{getText('jLogin.submit')}" method="login"/>
   <s:submit value="%{getText('jLogin.register')}" method="register"/>
在Action中,将execute改为相应的方法:login(),register()即可.
若要直接的调用,请求参数名的格式为:
action!method.action

实例如下:
【第 1步】实现主页面 (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 >
在 more_submit.jsp中有两个 submit:保存和打印。其中分别通过 method属性指定了要调用的方法: save和 print。因此,在 Action类中必须要有 save和 print方法。

【第 2步】实现 Action类( MoreSubmitAction)

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;
    }
}
上面的代码需要注意如下两点:
save和 print方法必须存在,否则会抛出 java.lang.NoSuchMethodException异常。
Struts2 Action动作的 execute方法无法访问 request对象,因此, Struts2 Action类需要实现一个 Struts2自带的拦截器来获得 request对象,拦截器如下:
org.apache.struts2.interceptor. ServletRequestAware
【第 3步】配置 Struts2 Action
struts.xml 的代码如下:
<? xml version="1.0" encoding="UTF-8"  ?>
<! DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.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 >

【第 5步】另一种方式
请求参数名的格式为
action!method.action
大家也可以直接使用如下的 URL来调用 save和 print方法:
调用 save方法: http://localhost:8080/moresubmit/submit!save.action
调用 print方法: http://localhost:8080/moresubmit/submit!print.action
本文出自 51CTO.COM技术博客

 

分享到:
评论

相关推荐

    Struts2.0学习系列 以及 Struts2.0安装包

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0学习系列"旨在帮助初学者及进阶者深入理解并...

    struts2.0教程合集

    总的来说,这个“struts2.0教程合集”是一个全面的学习资源,涵盖了Struts2.0的基础到高级内容,无论是对初学者还是有经验的开发者来说,都是一个不可多得的学习资料库。通过系统地学习和实践,你可以深入了解Struts...

    Struts2.0 入门学习资料

    Struts2.0是Java Web开发中的一个强大框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。Struts2.0的出现是对早期Struts1.x版本的重大升级,引入了...

    Struts2.0框架技术详解

    #### 四、处理一个form多个submit 当表单中有多个提交按钮时,可以通过为每个按钮设置不同的name属性值,然后在Action中通过`getParameters()`方法获取提交按钮的名称来判断哪个按钮被点击。 **示例代码**: ```...

    struts2.0 教程(标签,XML配置,入门例子,帮助手册)

    Struts2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Java EE平台上提供了强大的控制层解决方案。本教程旨在帮助初学者和开发者掌握Struts2.0的核心概念、配置和实际应用。 首先...

    基于struts2.0的进销存管理系统

    Struts2.0是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,由Apache软件基金会维护。它提供了一种组织应用程序结构的方式,使开发者能够更专注于业务逻辑,而不是底层的HTTP请求处理。Struts2.0...

    struts2.0一个简单的入门实例

    以下是一个简单的入门实例,帮助初学者理解如何配置和使用Struts2.0。 首先,我们需要创建一个新的Web项目。在MyEclipse中,你可以新建一个Web项目,例如命名为"Struts2入门实例"。接下来,你需要导入Struts2运行所...

    struts2.0环境搭建

    ### Struts2.0环境搭建知识点详解 #### 一、Struts2.0...通过以上步骤,您已经成功搭建了一个基于Struts2.0的基础Web应用程序。接下来可以根据实际需求进一步扩展功能,比如集成数据库访问、使用拦截器等高级特性。

    Struts2.0指南(chm)

    Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0指南(chm)"包含了对Struts2.0框架的详细讲解...

    struts2.0标签详解

    Struts2.0是一个强大的Java Web开发框架,它极大地简化了MVC(Model-View-Controller)应用的构建。在Struts2中,标签库是其核心特性之一,提供了丰富的标签来帮助开发者更加便捷地创建动态网页。本文将深入探讨...

    Struts 2.0 UI标签实例程序

    Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了创建动态、数据驱动的Web应用的过程。UI标签是Struts 2.0框架的一个核心特性,提供了丰富的视图层组件,使得开发者能够更...

    Struts2.0上传多文件

    在Struts2中,文件上传是一个常见的需求,特别是当用户需要提交包含多个文件的表单时。本篇文章将详细探讨如何在Struts2.0中实现多文件同时上传的功能。 首先,我们需要理解文件上传的基本原理。在Web应用中,文件...

    struts 2.0 常用标签

    Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web...在"struts2.0常用标签.txt"文件中,你可能会找到更多关于这些标签的详细使用示例和解释,这将有助于进一步学习和掌握Struts 2.0 标签的用法。

    Struts2.0 实现文件上传进度

    在HTTP协议中,文件上传通常涉及到multipart/form-data编码类型,这使得浏览器能够发送多个部分的数据,包括文本字段和文件。Struts2.0通过Commons FileUpload库来处理这种类型的请求。 1. **配置Struts2.0**:在...

    Struts2.0简明教程

    Struts2.0是一个强大的Java Web应用程序框架,它在MVC(Model-View-Controller)设计模式的基础上,为开发者提供了一种高效、灵活且可扩展的解决方案。本教程旨在为初学者提供一个简明易懂的Struts2.0学习路径。 **...

    struts2.0简明教程

    Struts2.0简明教程是一系列针对初学者和进阶者的教程,旨在帮助开发者快速理解和掌握Struts2框架的核心概念和技术。这个教程涵盖了从框架的初步安装到实际开发中的常见功能,包括Action、标签(Tag)、转换器...

    Struts2.0文件上传原理

    Struts2.0文件上传原理主要涉及Web应用中处理用户上传文件的功能,这一过程涉及到多个步骤和技术,包括HTTP协议、Multipart/form-data编码、临时文件存储以及后台处理。以下是对Struts2.0文件上传原理的详细解释: ...

    Struts 2.0实例

    Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它在Struts 1的基础上进行了大量的改进和优化,提供了更强大的功能和更好的灵活性。这个实例集主要针对初学者和开发者,通过一系列实际...

    struts2.0上传文件

    Struts2.0是Apache软件基金会的一个开源框架,主要用于构建基于Java的企业级Web应用程序。在Struts2中,实现文件上传是一项常见的需求,这通常涉及到处理用户通过表单提交的多部分请求(multipart/form-data)。文件...

Global site tag (gtag.js) - Google Analytics