`
suhongliang5332
  • 浏览: 23591 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

Struts2 多条数据保存的实现

 
阅读更多
在企业开发过程中,经常会遇到多条数据,需要同时保存或者添加的问题,今天我们就来探讨下,在此,我仅仅抛砖引玉,希望大家积极发表自己的意见。
一) 前台字符串拼接,后台拆分
    这种方式是利用js遍历数据,并使用一个特殊符号,把每条拼接在一起,到后台再按照特定字符,先拆分出一条记录,再拆分出所有数据。不推荐种方法,所以在这里不叙述了
二) 前台使用一个名字,后台拆分
前台代码
<form action="index.action">
<input type="text" name="myTest" value="1"/>
<input type="text" name="myTest" value="2"/>
<input type="text" name="myTest" value="3"/>
<input type="text" name="myTest" value="4"/>
<input type="text" name="myTest" value="5"/>
<input type="submit">
</form>

后台代码
private String myTest;
public String getMyTest() {
	return myTest;
}
public void setMyTest(String myTest) {
	this.myTest = myTest;
}

数据格式
myTest = 1, 2, 3, 4, 5
再进行数据拆分就可以了
三) 使用jquery的JSON进行数据传输
1.先引入js
<script type="text/javascript" src="_public/js/json2.js"></script>
<script type="text/javascript" src="_public/js/jqeury-1.8.3.js"></script>

2.取得各个值,并生成json数组
html嵌入
			 var jsonArr = new Array();
			 $("input:checkbox:checked").each(function(i){
				 	if($(this).val()!="on"){
				 		jsonArr.push($(this).val());
				 	}
			 });
			 var params = JSON.stringify({
		    	"delingArr":jsonArr
		     });
			 var result = getJsonByAjaxArr(params,"houseDelete.action");
			 alert(result.executeMessage);

getJsonByAjaxArr函数
function getJsonByAjaxArr(param,actionName){
	var result;
	$.ajax({  
		url: actionName,    
		type: 'POST',
		async: false,//同步   只有success之后才会继续走
		contentType:"application/json",//没有这个,数组将不成功
		data: param,
		success: function(returnData, textStatus) {  
			result = returnData; 
		},    
		error: function(xhr, textStatus, errorThrown) {        
			alert("Data submit error");   
		}
	});
	return result;
}

3.添加拦截器
在Struts2中加入拦截器
<package name="jsonTilesSuper" extends="json-default">
	<result-types>
	<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult" />
	</result-types>
<interceptors>
	<interceptor-stack name="myStack">
		<interceptor-ref name="json"/>
		<interceptor-ref name="defaultStack" />
	</interceptor-stack>
</interceptors>
	   <default-interceptor-ref name="myStack" />
	   <global-results>
	   	<result name="NOT_LOGIN" type="tiles">lodg.login</result>	
	   </global-results>
</package>

并加入包
struts2-json-plugin-2.3.7.jar
继承这个包的都有了JSON拦截的方法
4.后台
	private ArrayList<String> delingArr;
	
	public ArrayList<String> getDelingArr() {
		return delingArr;
	}
	public void setDelingArr(ArrayList<String> delingArr) {
		this.delingArr = delingArr;
	}

5前台
<#if result?exists && (result?size>0) >
	<#list result as current>
	<tr>
	<td><input type="checkbox" name="chk" id="chk" value="${current.lodging_id?if_exists}" /></td>
	<td>${current.lodging_catecd?if_exists}</td>
	<td>${current.lodging_group?if_exists}</td>
	<td>${current.lodging_unit?if_exists}</td>
	<td>${current.lodging_floor?if_exists}</td>
	<td>${current.lodging_ho?if_exists}</td>
	<td>${current.room_count?if_exists}</td>
	<td>${current.residence_number?if_exists}</td>
	<td>${current.area?if_exists}</td>
	<td>${current.lodging_type?if_exists}</td>
	<td>${current.rent_compnm?if_exists}</td>
	<td>${current.man_count?if_exists}</td>
	<td><a style="cursor: hand" id="houseEdtForm" onclick="houseEdtFormClick('${current.lodging_id?if_exists}','${current.residence_number?if_exists}','${current.comp_cd?if_exists}','${current.houseType_cd?if_exists}')"> 
	<img src="_public/images/ok.gif"> 修改</a>
	</td>
	</tr>
	</#list>
<#else>
	<tr>
	<td colspan=12 class="st">没有检索出数据!</td>
	</tr>
</#if>

注意:在编写这类代码的时候,一定注意传送到后台的是真正修改的数据,不要一股脑把全部数据都传送到后台
分享到:
评论

相关推荐

    struts2批量提交数据

    本篇文章将深入探讨如何利用Struts2实现批量提交数据的功能。 ### 一、批量提交的概念 批量提交是指一次性处理多个数据记录,而不是逐个处理。在Web应用中,这通常涉及到用户上传一个包含多条记录的数据文件,或者...

    Struts2项目案例

    4. **删除(Delete)**:用户选择一条或多条记录进行删除,Action需要处理这些请求并从数据库中移除选定的记录。 在这个案例中,我们可能会看到以下关键部分: - **struts2day04.xml**:Struts2配置文件,定义了...

    hibernate+struts2做的登录/注册/的小例子

    在本项目中,开发者使用了Hibernate和Struts2这两个核心框架来构建一个基础的登录注册系统,同时还涉及到了分页查询这一重要的数据处理技术。以下是对这些知识点的详细阐述: **1. Hibernate框架:** Hibernate是一...

    ibatis 完美例子 一对多 批处理 事务 和 spring struts2集成

    本文将深入探讨如何利用Ibatis实现一对多关系、批处理、事务管理和与Spring及Struts2的集成。 首先,让我们来看一下“一对多”关系。在数据库设计中,一对多关系很常见,比如一个用户可以有多个订单。在Ibatis中,...

    网络硬盘(Struts 2+Hibernate+Spring实现)

    通过Spring的事务管理,可以确保在多条数据库操作之间保持事务的一致性,比如在文件上传时,如果保存用户信息和文件信息失败,所有改动都能被回滚。 项目中的主要模块可能包括: 1. **用户管理模块**:负责用户...

    Struts + Hibernate 实现简单分页功能

    总的来说,使用Struts和Hibernate实现分页功能,需要结合MVC模式和ORM思想,合理设计数据访问层和业务逻辑层,同时确保前端与后端的有效通信。这个过程涉及到了Java编程、数据库操作、框架理解和页面渲染等多个方面...

    struts2的分页和多文件上传的例子

    Struts2提供了多种实现分页的方法,如使用Tiles2或FreeMarker模板进行前端展示,以及在后台通过DAO层进行数据查询分页。通常,我们会定义一个PageBean来存储当前页数、总页数、每页显示条数等信息,并在Action类中...

    struts2,CRUD,分页,富文本

    总的来说,这个DEMO项目为学习者提供了一个实际的、完整的Struts2应用实例,涵盖了从数据操作到前端展示的多个层面,是理解Struts2框架及其在实际开发中应用的良好起点。通过深入研究和修改这个DEMO,开发者可以...

    struts实现增删改

    在Java EE(企业版)环境中,Struts为开发者提供了一种组织应用程序的方式,使得业务逻辑、数据和用户界面解耦,提高了代码的可维护性和可复用性。本篇文章将深入探讨如何使用Struts来实现增删改操作。 1. **Struts...

    struts2+fckeditor关于信息发布的实例

    Struts2的动作类接收到这些数据后,可以将它们保存到数据库中,形成一条新的信息记录。 **实例解析** 在这个"bulletin"实例中,很可能包含以下组件: 1. `BulletinAction`:处理发布信息请求的Struts2动作类。 2. `...

    通过Struts2返回验证码文件

    在Struts2框架中,开发Web应用时,我们经常需要实现验证码功能,以防止恶意的自动脚本或机器人提交表单。"通过Struts2返回验证码文件"这一主题主要涉及如何利用Struts2来生成并返回一个动态的、用于验证用户输入的...

    Struts2_Hibernate_Spring图书管理

    此外,Spring的事务管理功能可以确保在处理图书操作时的数据一致性,如在多条数据库操作之间维护事务的原子性。 4. **集成与协同**:这三者集成时,通常Spring作为核心,管理Struts2和Hibernate的生命周期。Struts2...

    使用struts1.x上传多个文件的一中方法

    在Struts1.x中,实现文件上传功能是一个常见的需求,特别是在处理用户提交的表单时需要包含多个文件。下面我们将详细介绍如何使用Struts1.x来实现多个文件的上传。 首先,我们需要在HTML表单中添加`...

    struts+hibernate实现的网络购物系统.rar

    例如,添加一条订单记录,只需创建一个Order对象并设置其属性,然后通过Hibernate的Session接口保存到数据库。 在开发过程中,Struts和Hibernate的集成可以极大地提高开发效率。通常,Struts的Action会调用Service...

    struts与hibernate实例

    7. **事务管理**:在多条数据库操作之间,可能需要使用事务来保证数据的一致性。Hibernate提供了事务管理机制,可以在Action类中控制事务的开启、提交和回滚。 通过这个实例,你可以学习到如何在实际项目中使用...

    Struts分页

    4. **ActionForm**(Struts 1)/**ModelDriven**(Struts 2):Struts 1中,可以使用ActionForm来收集用户输入和存储业务数据;而在Struts 2中,可以利用ModelDriven接口将模型对象与Action关联,简化了数据绑定过程...

    图书采集系统 java 增加 删除 修改 功能 Struts 标签

    当用户提交表单时,Struts框架会调用后台的Java方法,将数据保存到数据库中。 删除功能:删除功能允许管理员移除不再需要的图书记录。这通常通过点击一个删除按钮触发,Struts会调用相应的方法,根据图书的ID或其他...

    struts+jsp留言板

    5. **事务管理**:如果多个数据库操作需要作为一个整体完成(例如,添加一条新的留言并更新用户信息),则需要考虑事务管理。在Struts应用中,可以使用Spring框架的AOP(Aspect-Oriented Programming)特性来实现...

Global site tag (gtag.js) - Google Analytics