一个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是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0学习系列"旨在帮助初学者及进阶者深入理解并...
总的来说,这个“struts2.0教程合集”是一个全面的学习资源,涵盖了Struts2.0的基础到高级内容,无论是对初学者还是有经验的开发者来说,都是一个不可多得的学习资料库。通过系统地学习和实践,你可以深入了解Struts...
Struts2.0是Java Web开发中的一个强大框架,它基于MVC(Model-View-Controller)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。Struts2.0的出现是对早期Struts1.x版本的重大升级,引入了...
#### 四、处理一个form多个submit 当表单中有多个提交按钮时,可以通过为每个按钮设置不同的name属性值,然后在Action中通过`getParameters()`方法获取提交按钮的名称来判断哪个按钮被点击。 **示例代码**: ```...
Struts2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它在Java EE平台上提供了强大的控制层解决方案。本教程旨在帮助初学者和开发者掌握Struts2.0的核心概念、配置和实际应用。 首先...
Struts2.0是一个基于MVC(Model-View-Controller)设计模式的开源Java Web框架,由Apache软件基金会维护。它提供了一种组织应用程序结构的方式,使开发者能够更专注于业务逻辑,而不是底层的HTTP请求处理。Struts2.0...
以下是一个简单的入门实例,帮助初学者理解如何配置和使用Struts2.0。 首先,我们需要创建一个新的Web项目。在MyEclipse中,你可以新建一个Web项目,例如命名为"Struts2入门实例"。接下来,你需要导入Struts2运行所...
### Struts2.0环境搭建知识点详解 #### 一、Struts2.0...通过以上步骤,您已经成功搭建了一个基于Struts2.0的基础Web应用程序。接下来可以根据实际需求进一步扩展功能,比如集成数据库访问、使用拦截器等高级特性。
Struts2.0是Java Web开发中的一个强大框架,它基于Model-View-Controller(MVC)设计模式,为开发者提供了构建可维护性高、结构清晰的Web应用程序的工具。这个"Struts2.0指南(chm)"包含了对Struts2.0框架的详细讲解...
Struts2.0是一个强大的Java Web开发框架,它极大地简化了MVC(Model-View-Controller)应用的构建。在Struts2中,标签库是其核心特性之一,提供了丰富的标签来帮助开发者更加便捷地创建动态网页。本文将深入探讨...
Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它极大地简化了创建动态、数据驱动的Web应用的过程。UI标签是Struts 2.0框架的一个核心特性,提供了丰富的视图层组件,使得开发者能够更...
在Struts2中,文件上传是一个常见的需求,特别是当用户需要提交包含多个文件的表单时。本篇文章将详细探讨如何在Struts2.0中实现多文件同时上传的功能。 首先,我们需要理解文件上传的基本原理。在Web应用中,文件...
Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web...在"struts2.0常用标签.txt"文件中,你可能会找到更多关于这些标签的详细使用示例和解释,这将有助于进一步学习和掌握Struts 2.0 标签的用法。
在HTTP协议中,文件上传通常涉及到multipart/form-data编码类型,这使得浏览器能够发送多个部分的数据,包括文本字段和文件。Struts2.0通过Commons FileUpload库来处理这种类型的请求。 1. **配置Struts2.0**:在...
Struts2.0是一个强大的Java Web应用程序框架,它在MVC(Model-View-Controller)设计模式的基础上,为开发者提供了一种高效、灵活且可扩展的解决方案。本教程旨在为初学者提供一个简明易懂的Struts2.0学习路径。 **...
Struts2.0简明教程是一系列针对初学者和进阶者的教程,旨在帮助开发者快速理解和掌握Struts2框架的核心概念和技术。这个教程涵盖了从框架的初步安装到实际开发中的常见功能,包括Action、标签(Tag)、转换器...
Struts2.0文件上传原理主要涉及Web应用中处理用户上传文件的功能,这一过程涉及到多个步骤和技术,包括HTTP协议、Multipart/form-data编码、临时文件存储以及后台处理。以下是对Struts2.0文件上传原理的详细解释: ...
Struts 2.0 是一个基于MVC(Model-View-Controller)设计模式的Java Web框架,它在Struts 1的基础上进行了大量的改进和优化,提供了更强大的功能和更好的灵活性。这个实例集主要针对初学者和开发者,通过一系列实际...
Struts2.0是Apache软件基金会的一个开源框架,主要用于构建基于Java的企业级Web应用程序。在Struts2中,实现文件上传是一项常见的需求,这通常涉及到处理用户通过表单提交的多部分请求(multipart/form-data)。文件...