Action:
package com.awp.test.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;
import com.awp.test.form.FirstForm;
import com.awp.test.form.SecondForm;
/**
* @version 1.0
* @author awp
* @date 2009-4-24 上午11:25:49
* @decription 一个Action中包含多个Form
*/
public class MultiFormTestAction extends DispatchAction {
/**
* 第一个Form对应方法
*/
public ActionForward firstForm(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
FirstForm beanform = (FirstForm)form;
request.setAttribute("name", beanform.getName());
return mapping.findForward("display");
}
/**
* 第二个Form对应方法
*/
public ActionForward secondForm(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response){
SecondForm beanform = (SecondForm)form;
request.setAttribute("name", beanform.getName());
return mapping.findForward("display");
}
}
Form:
package com.awp.test.form;
import org.apache.struts.action.ActionForm;
public class FirstForm extends ActionForm {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.awp.test.form;
import org.apache.struts.action.ActionForm;
public class SecondForm extends ActionForm {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
struts-cofing.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN"
"http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="firstform" type="com.awp.test.form.FirstForm"/>
<form-bean name="secondform" type="com.awp.test.form.SecondForm"/>
</form-beans>
<global-forwards>
<forward name="display" path="/display.jsp"/>
</global-forwards>
<action-mappings>
<action path="/firstpath"
input="/first.jsp"
name="firstform"
parameter="method"
scope="request"
type="com.awp.test.action.MultiFormTestAction"/>
<action path="/secondpath"
input="/second.jsp"
name="secondform"
parameter="method"
scope="request"
type="com.awp.test.action.MultiFormTestAction"/>
</action-mappings>
<message-resources parameter="MessageResources" />
</struts-config>
first.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>我是提交第一个FORM的页面</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/firstpath.do?method=firstForm" method="post">
<input name="name" value="" type="text"/>
<input name="ok" value="提交" type="submit"/>
</form>
</body>
</html>
second.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>我是提交第二个FORM的页面</title>
</head>
<body>
<form action="<%=request.getContextPath()%>/secondpath.do?method=secondForm" method="post">
<input name="name" value="" type="text"/>
<input name="ok" value="提交" type="submit"/>
</form>
</body>
</html>
display.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<!doctype html public "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>显示页面</title>
</head>
<body>
<br />
表单提交的内容为:${name} <br /><br />
<a href="first.jsp">打开表单1</a><br /><br />
<a href="second.jsp">打开表单2</a>
</body>
</html>
Action必须继承DispatchAction,感觉其实一个action还是只能对应一个form
这里的方法其实是利用action的path 多个path可以指向同一个action。
分享到:
相关推荐
下面是一个实例程序,演示如何处理有多个 submit 的 form: 【第 1 步】实现主页面(more_submit.jsp) 在 more_submit.jsp 中,有两个 submit:保存和打印。其中分别通过 method 属性指定了要调用的方法:save 和...
总结来说,Struts2通过在Action类中定义与submit按钮对应的方法,以及在JSP页面中使用`s:submit`标签的`method`属性,实现了对一个表单内多个submit按钮的区分处理。这种方法提高了代码的可读性和可维护性,同时也...
在这个“一个form多个submit处理案例”中,我们将探讨如何在一个表单中使用多个submit按钮来实现不同的功能。这在实际应用中非常常见,比如在一个订单页面上,用户可能有一个“保存草稿”和“立即购买”的提交选项。...
标题中的“一个Form数据拆分到不同的jsp中”是指在Web开发中,如何将一个大型的表单(Form)逻辑拆分成多个独立的JavaServer Pages(JSP)文件,以便更好地管理和维护页面结构。这种做法有助于提高代码的可读性和可...
在Struts1中,ActionForm类需要有一个对应的List字段来接收这些值,这样在提交表单时,Struts1的默认Binding机制会自动将这些值绑定到List中。 4. **配置文件**: 配置文件(struts-config.xml)需要添加相应的...
### EventDispatchAction类处理一个form多个submit #### 一、背景与概述 在Web应用程序开发过程中,表单的提交操作是非常常见的场景之一。对于复杂的业务逻辑而言,有时我们需要在一个表单中提供多个提交按钮,...
每个Action对应一个特定的HTTP请求,负责接收请求参数,处理业务逻辑,并通过ActionForward或ActionRedirect来决定页面跳转。Action类通常继承自org.apache.struts.action.Action,你可以根据业务需求重写execute...
通常,一个表单只有一个Submit按钮,但有时根据设计需求,我们可能需要在同一个表单中添加多个Submit按钮,以实现不同的提交功能。本文将深入探讨如何在HTML和JavaScript中实现一个表单多个Submit按钮的简单方法。 ...
传统的Struts开发中,每个表单对应一个ActionForm类,而在动态Form模式下,无需预先定义Form类,而是直接在JSP页面中声明表单元素,并通过OGNL(Object-Graph Navigation Language)表达式绑定到Action的属性。...
在实现一个表单中多个Submit按钮的功能时,我们需要考虑到每个Submit按钮对应的处理程序的不同。通过使用JavaScript函数、HTML的Form标记中的action属性和服务器端的语言,我们可以轻松地实现这些功能。 本文提供了...
multipart/form-data是另一种常用的编码格式,它将窗体数据编码为一条消息,页上的每个控件对应消息中的一个部分。这种编码格式可以上传文件,并且可以处理复杂的数据结构。 在实际开发中,我们需要根据具体情况...
此外,有时一个表单字段可能有多个值,比如复选框或有相同Name属性的文本框。这时,Form集合会为该Name创建一个条目,包含所有值。例如: ```html <FORM ACTION="show_request.asp" METHOD="POST"> OtherHobby: ...
然而,有时会遇到一个表单需要对应多个按钮,每个按钮执行不同的操作,如保存、删除或更新。本篇文章将详细介绍如何解决Django中一个表单对应多个按钮的问题。 首先,我们要理解Django表单的基本原理。Django的表单...
综上所述,这个实例展示了如何在Ext中创建一个完整的表单,包括表单的布局、字段的定义及验证、按钮及事件处理等多个方面。对于初学者来说,这是一个很好的学习资源,可以帮助他们快速掌握如何使用Ext构建复杂的Web...
在给定的内容中,我们可以看到一个简单的登录页面(`Login.jsp`)和对应的 Struts2 配置(`struts.xml`)。 ##### Login.jsp 示例代码分析 ```html <form id="form1" name="form1" method="post" action="/login....
4. **Struts Action**:定义一个Struts Action,处理AJAX请求。在这个Action中,你需要处理表单数据,进行业务逻辑处理,并返回一个可以被JavaScript解析的响应(通常是JSON或XML)。 5. **AJAX回调**:在jQuery的...
总的来说,"SSH项目 form读取xml实例"涵盖了SSH2框架下的表单处理、XML数据的读取与操作、JavaScript的前端交互等多个知识点。通过这个实例,开发者可以学习到如何在Java Web项目中有效地管理和处理表单数据,以及...
在Web开发中,特别是使用Struts框架时,经常会遇到一个问题:当一个简单的组件(如购物车)需要执行多种操作(如添加商品、删除商品、修改商品数量等),而Struts的`Action`类通常只有一个`execute`方法时,如何设计...
`doAction`接受两个参数,一个是操作类型(如'load'或'submit'),另一个是包含配置选项的Ext.form.Action对象。 4. **Ext.form.Action对象**: Action对象定义了数据操作的行为,如HTTP请求和处理响应。`Ext.form...
如果希望在保持每个请求路径对应一个`<action>`元素的同时,又能够在一个Action类中处理多个请求路径,可以选择继承`MappingDispatchAction`。 **配置示例**: ```xml <action path="/mapping/login" type=...