`
墨香子
  • 浏览: 47009 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jquery将前台选中的checkbox值以数组形式发送到后台struts的action

阅读更多
我的需求是将前台页面选中的checkbox的value值以数组发送到后台,我的后台使用struts的action接收参数。
前台页面如下:
<input type="checkbox" name="idList" value='1'/>
<input type="checkbox" name="idList" value='2'/>
<input type="checkbox" name="idList" value='3'/>
<input type="checkbox" name="idList" value='4'/>

要以数组的形式发送数据就需要input的name属性值设置为相同。而后台struts的action使用List来接收前台传来的参数。
前台向struts的action传递数组的格式如:
idList=1&idList=2&idList=3

或以json传递:
{idList:1,idList:2,idList:3}

如果我想将id为1、2、3的email删除,使用jquery的ajax方法如下:
			$.post("deleteEmails.action","idList=1&idList=2&idList=3",function(result){
				$(".content-box-content").html(result);
			});


那么如果是想将前台选中的email删除,那么只需要将选中的checkbox的name和value拼接成上述格式就行了。

如下:
		var selectedItems = new Array();
		$("input[@name='idList']:checked").each(function(){
			selectedItems.push("idList="+$(this).val());
		});
		$.post("deleteEmails.action",selectedItems.join("&"),function(result){
			$(".content-box-content").html(result);
		});



jquery还为我们提供一个更简单的方法,既是使用serialize或serializeArray,这两个方法通常用在表单上,这里使用serialize将大大减少代码,如下:
			$.post("deleteEmails.action",$("input[@name='idList']:checked").serialize(),function(result){
				$(".content-box-content").html(result);
			});


我的后台action如下:

@Scope("prototype")
@Controller("emailAction")
public class EmailAction extends ActionSupport {
	/**
	 * 
	 */
	private static final long serialVersionUID = -2943423285236995103L;
	@Autowired
	private EmailService emailService;
	
	static Logger log = Logger.getLogger(EmailAction.class);
	public EmailService getEmailService() {
		return emailService;
	}
	public void setEmailService(EmailService emailService) {
		this.emailService = emailService;
	}
	
	private List<Integer> idList;
	
	public List<Integer> getIdList() {
		return idList;
	}
	public void setIdList(List<Integer> idList) {
		this.idList = idList;
	}
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public String deleteEmails(){
		Map request =  (Map) ActionContext.getContext().get("request");
		if(idList == null){
			request.put("type", "error");
			request.put("tip", "删除出现错误,删除失败!");
			return ERROR;
		}
		for(int id : idList){
			if(!this.emailService.deleteEmailById(id)){
				request.put("type", "error");
				request.put("tip", "删除出现错误,删除失败!");
				return ERROR;
			}
		}
		request.put("type", "success");
		request.put("tip", "删除成功!");
		return SUCCESS;
	}
}

分享到:
评论

相关推荐

    S2SH+JQuery的checkbox批量选择并在action中获取数据

    本文将详细介绍如何使用S2SH框架配合jQuery实现复选框的批量选择,并在Action中获取这些被选中的数据。 #### 二、关键技术组件介绍 1. **Struts2**:MVC模式的一个开源框架,用于构建企业级Java Web应用程序。 2. ...

    struts2对于checkboxlist的换行

    `checkboxlist`在Struts2中通常与一个Action类中的属性关联,用于收集用户的多选数据。在HTML中,复选框默认是按行显示的,但为了优化用户界面,我们可能希望将它们分成多列显示,这就涉及到了换行。 `...

    jquery复选框checkbox实现删除前判断

    // 将选中的值添加到数组中 }); // 跳转到处理删除的 action,传递选中的 ID window.self.location = "deleteUser?info=" + array.join(","); } else { alert("请至少选择一个用户"); } } ``` 这段代码的...

    strust的复选框自动怎么选中

    当你需要实现复选框在页面加载时自动被选中,通常涉及到JSP(JavaServer Pages)页面中的Struts标签库以及后台Java动作类的逻辑处理。 首先,我们需要理解Struts中的表单元素。在JSP页面中,我们可以使用Struts的`...

    struts2-tags-API.rar

    1. **Action标签**:此标签用于调用Struts2中的Action,例如`&lt;s:action&gt;`,可以执行特定的业务逻辑,并将结果定向到相应的视图。 2. **Display标签**:这些标签用于在页面上展示数据,如`&lt;s:property&gt;`,可以用来...

    struts2的详细资料

    开发者可以使用Struts2的Ajax插件,如JQuery插件,或者直接利用JavaScript库(如jQuery或 Prototype)来发送AJAX请求。在Action类中,可以定义一个特殊的方法处理AJAX请求,并返回JSON对象,然后前端JavaScript代码...

    一个基于oracle 数据库的struts 的例子的源文件

    这里的实现可能涉及到JavaScript或jQuery,用于处理用户的多选操作,如选中、取消选中,并将选择结果传递给后台。 5. **文件结构**:压缩包中的"homebiz"很可能包含以下文件夹和文件:源码目录(src)下有Action类...

    struts2入门的学习资料.pdf

    在Struts2中,OGNL被用来在Action和视图之间传递数据,如在JSP中使用`&lt;s:property value="%{variable}"/&gt;`来输出Action中的变量值。 6. **表单数据校验(Validation)**: - Struts2提供了一套完整的验证框架,允许...

    JQuery使用$.ajax和checkbox实现下次不在通知功能

    XXX平台要实现一个功能,公告弹出页面上使用复选框设置...,checkbox选中后提交表单,那么struts2的Action中isSelect就为’10’,不选中提交表单isSelect为null。   1.jsp页面 &lt;form id=form1&gt; ${ bussine

    Struts2 标签使用简介

    Struts2的标签库不仅限于核心库,还可以通过插件机制添加第三方标签库,如Struts2-dojo-plugin、Struts2-jquery-plugin等,这些插件提供了丰富的UI组件,如日期选择器、下拉树等。 总结,Struts2标签库是其强大功能...

    struts2 radio

    通过`struts2(checkbox_radio_select)表单标签的应用及详细事例.doc`文档,你应该能更深入地了解Struts2的`radio`标签如何与其他表单元素(如`checkbox`和`select`)配合工作,以及如何在实际项目中灵活运用。...

    struts2标签的使用代码

    在本文中,我们将深入探讨如何使用Struts2标签来实现迭代输出、表格美化、集合输出以及日期树节点标签的使用。 1. 迭代输出 在Struts2中,`&lt;s:iterator&gt;`标签是最常用的迭代标签,用于遍历集合或数组。例如,你可以...

    struts2资料

    1. **表单域的回显**:Struts2可以通过OGNL自动将Action中的属性值绑定到页面的输入字段,实现回显。 2. **URL参数传递**:URL中的查询参数可以通过ActionContext读取,然后映射到Action的属性。 3. **请求体参数**...

    第3章_Struts2标签库详解与AJAX技术应用.rar

    例如,`&lt;s:form action="saveUser"&gt;`将提交表单到名为"saveUser"的动作。 3. `&lt;s:textfield&gt;`、`&lt;s:textarea&gt;`、`&lt;s:radio&gt;`、`&lt;s:checkbox&gt;`等:这些标签用于创建不同类型的输入字段,如文本输入框、多行文本区域...

    jstree struts2

    一个简单的例子可能是:用户在JSTree中选择多个文件夹,然后通过点击按钮触发Struts2 Action,Action将这些文件夹ID作为参数,执行相应的业务操作,如移动、复制或删除文件夹。返回的结果可以是操作状态,JSTree根据...

    struts2 标签 api chm

    - **s:property**:用于显示Action属性值,可以进行格式化处理。 - **s:form**:创建HTML表单,支持自动校验和异步提交。 - **s:textfield**、**s:textarea**、**s:checkbox**、**s:radio**、**s:select**:这些...

    第08章 Struts 2.1标签库详解与AJAX技术应用

    Struts 2.1是Java Web开发中一个重要的MVC框架,它提供了强大的标签库来简化视图层的开发,并且支持AJAX技术以实现页面的异步更新。本章将深入探讨Struts 2.1的标签库及其在AJAX技术中的应用。 一、Struts 2.1标签...

    基于Jquery+Ajax+Json实现分页显示附效果图

    接下来,为了将这些数据以JSON格式返回给前端,我们需要构建一个JSON字符串: ```java int totalRows = blackList.size(); StringBuilder sb = new StringBuilder(); sb.append("{\"totalCount\":\"" + totalRows +...

    SSH 全选反选批量删除

    Struts2 Action中会接收到这些选择,并在后端处理。Struts2的拦截器可以用来实现分页功能,限制一次加载和操作的数据量,避免性能问题。 在描述中提到的"全反选分页功能",这涉及到前端UI的交互设计。在JSP页面上,...

Global site tag (gtag.js) - Google Analytics