●LookupDispatchAction: 当一个表单有多个提交按钮时,可实现不同提交按钮使用同一action调用不同方法
它继承DispatchAction,故已实现一个action分发多个命令
在DispatchAction基础上做了一些改动.实质都是根据xx.do?method=cc的cc,找到action相应命令方法执行
1.编写多个提交按钮的表单.这里使用Struts标签html,bean,以及国际化资源文件
bean:message-key属性值引用的国际化资源文件的键
submit-property属性值为请求的方法参数名,值为key表示的键对应的值
翻译之后为<input type="submit" name="method" value="国际化资源文件中key所对应的值" />
提交的请求实为: user.do?method=value值
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<html:form action="user.do" method="get">
name:<html:text property="userName" /><br/>
<html:submit property="method"><bean:message key="button.add" /></html:submit>
<html:submit property="method"><bean:message key="button.del" /></html:submit>
</html:form>
2.编写ActionFormBean,并配置form-bean
public class UserFormBean extends ActionForm {
private String userName;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
}
<form-beans > <form-bean name="user" type="xiaoxu.vo.UserFormBean" /> </form-beans>
3.编写action,并配置action
注意该action必须有name属性,即该ActionMapping必须配置ActionForm
分发的命令,即方法,参数列表与execute方法一致
getKeyMethodMap是LookupDispatchAction的抽象方法,实现提交按钮的value值与命令方法的匹配
public class UserAction extends LookupDispatchAction {
/*两个命令方法,addUser,delUser*/
public ActionForward addUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("添加用户");
return null;
}
public ActionForward delUser(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
System.out.println("删除用户");
return null;
}
protected Map<String,String> getKeyMethodMap() {
Map<String,String> map=new HashMap<String,String> (); //创建Map集合
//key引用的国际化资源文件的键,值为命令方法名
//父类将会做进一步处理.从国际化资源文件中根据键获取值,再匹配命令方法名
map.put("button.add","addUser");
map.put("button.del","delUser");
return map;
}
}
<action-mappings>
<action path="/user" type="xiaoxu.action.UserAction" name="user" parameter="method" />
</action-mappings>
分享到:
相关推荐
代码如下: ”javascript” name=”code”>function check(txt){ $j(“form”).submit(function(){ if($txt==”提交”){ this.action=”doAddMessage.action?button=提交”; this.submit(); }else{ this.action=”...
### 一个from表单提交多个功能 在Web开发中,我们经常会遇到需要通过同一个表单实现多种不同功能的情况。例如,根据用户的选择或输入执行不同的后端处理逻辑。本文将详细解析如何通过JavaScript来实现一个表单提交...
在上述代码中,我们创建了一个表单,其中有两个提交按钮,它们的name都是"sub",但值分别是"s1"和"s2"。 当用户点击其中一个按钮提交表单时,服务器端可以通过PHP来判断哪个按钮被点击了。这通常通过检查POST或GET...
在JavaServer Pages (JSP) 技术中,创建一个包含多个提交按钮的页面是常见的需求,每个按钮可能对应不同的处理逻辑,比如提交到不同的后端Servlet或执行不同的操作。本示例着重讲解如何在JSP页面中实现多个提交按钮...
总结,"表单点击提交按钮后变成灰色"这一现象体现了JavaScript在处理表单提交时对用户体验和数据安全性的考虑。开发者可以通过控制按钮的`disabled`属性,配合事件监听和异步提交技术,实现更加智能和友好的表单交互...
要实现一个表单多个Submit按钮,我们可以利用JavaScript来控制每个按钮的提交行为。以下是三种常见的实现策略: 1. **使用name属性和JavaScript事件处理**:为每个Submit按钮设置唯一的name属性,例如`提交1">`和`...
为了解决这个问题,开发者需要确保表单只提交一次,防止不必要的数据重复处理或者服务器的重复计算。下面详细解释几种防止Layui表单重复提交的方法。 首先,在HTML表单中,为了避免在提交时页面刷新导致的重复提交...
用js提交表单解决一个页面有多个提交按钮的问题,主要是判断是否为提交文本,然后再执行相应的动作,比较简单。 <pre class=javascript name=code>function check(txt){ $j(form).submit(function(){ if($txt==提交)...
在Web开发中,用户表单重复提交是一个常见的问题,它可能导致数据冗余或者数据库状态的不一致。本示例提供了一种解决方案,包括在前端JavaScript和后端进行处理,以防止用户因网络延迟或误操作导致的多次提交。 ...
在形考任务六中,我们将探讨如何利用HTML来创建一个包含文本输入、单选按钮以及提交按钮的表单。 **一、HTML表单基础** HTML表单通过`<form>`标签定义,它通常包含一个或多个表单控件,如`<input>`、`<select>`、`...
在Struts2框架中,处理一个表单中的多个提交按钮是一项常见的需求。通常,一个HTML `<form>` 标签会包含多个 `<input type="submit">` 按钮,每个按钮对应不同的操作。Struts2 提供了一种机制,允许在同一个Action类...
本篇文章将详细讲解如何在layui中实现一个页面上使用多个独立的文件上传按钮,以及相关的配置和注意事项。 首先,layui的upload组件是基于HTML5的File API构建的,支持多文件选择、预览、上传进度显示等功能。在...
当表单被提交后,将一个标识符存入session,然后在处理请求时检查这个标识。如果发现用户已经提交过,就拒绝处理新的请求。 5. **数据库唯一约束** 对于某些需要确保唯一性的数据,如用户名、电子邮件等,可以在...
这是因为如果未正确处理,一个简单的按钮点击可能会导致Ajax请求和表单提交同时发生,造成不期望的重复提交问题。 当使用HTML表单提交数据时,点击类型为submit的按钮默认会触发表单的提交。在使用JavaScript的Ajax...
layui的每个功能都被封装为一个模块,例如`form`模块用于处理表单操作,`layer`模块则用于弹窗功能。在使用前,我们需要通过`layui.use()`方法引入这些模块。 1. 引入layui库: 在HTML文件头部引入layui的CSS和JS...
在Web开发中,表单重复提交是一个常见的问题,可能导致数据的冗余或错误。JavaScript作为客户端脚本语言,可以通过多种策略来防止用户意外或恶意地多次提交表单。以下是一些关键的知识点: 1. **禁用提交按钮**:最...
在这个例子中,我们有两个提交按钮,一个是用于删除操作,另一个是用于更新操作。每个按钮都有一个唯一的`name`属性,分别是`delete`和`update`。 然后,在Django视图函数中,我们可以检查POST请求的数据来判断用户...
"修改禁止多次重复提交"这个话题涉及到前端交互、后端处理以及数据库操作等多个层面。下面将详细介绍如何实现这一功能。 首先,前端控制是第一道防线。通常,我们可以使用JavaScript来限制表单提交。当用户点击提交...
在这个“一个form多个submit处理案例”中,我们将探讨如何在一个表单中使用多个submit按钮来实现不同的功能。这在实际应用中非常常见,比如在一个订单页面上,用户可能有一个“保存草稿”和“立即购买”的提交选项。...
然而,在某些场景下,我们需要实现多个按钮各自对应不同的处理逻辑,这就涉及到表单多按钮提交action的处理方法。 在JavaScript中,我们可以通过给按钮绑定不同的事件处理函数来实现这一需求。当某个按钮被点击时,...