关于JSP页面收集数据封装成JSON格式传入到后台相关

1.使用选择器等方式收集到标签的值

例如:

function  get(){
	var jsonStr =[];
	$(".input").each(function(index,item){
		index++;//循环的索引
		var val = $(this).val().trim();//拿到当前循环体的值去空格
		if(val!=""){
			var obj={}//创建一个JSON格式的空对象
			var title =  $(this).parent().prev().html();//找个当前元素的父类级的前一个元素值
			obj['title'] = title;//JSON中的第一个成员,类似于{title : "title"}
			obj['value'] = val;//JSON中的第二个成员,类似于{title:"title" , value : "value"}
			//依次往下添加其他成员,这里也可以使用(obj.title=title)这种方式来添加
			obj['flags'] = "0";
			obj['sort'] = index;
			obj['color'] = val;
			obj['lastColor'] = val;
			//要实现从JS对象转换为JSON字符串,使用 JSON.stringify() 方法
			JSON.stringify(obj)之后为:
			{"title" : "title","value " : "value "}
			//循环放入jsonStr数组中为:
			jsonStr.push(JSON.stringify(obj));
			["{"title" : "title","value" : "value"}","{"title" : "title" , "value" : "value"}"]
		}
	});
	//把得到的这个数组赋值给文本保存。
	$("#jsonStr").val(jsonStr);
}
2.在JSP页面会有一个对应的隐藏域如下:
<form:hidden path="jsonStr"/> 

这个id对应着当前这个实体类里面的一个属性,这样json串就会通过实体传入到后台的逻辑中。

3.后台处理

// 去掉html制表字符,转义字符,并且加上"[“左括号和右括号”]":

String str = CONSTANT.BRACKET_LEFT + StringEscapeUtils.unescapeHtml3(scProductionPackageTitle.getJsonStr())
   			+ CONSTANT.BRACKET_RIGHT; 

转成json数组循环获取:

try {
	if (!StringUtils.isRealEmpty(str)) {
		JSONArray jsonArray = new JSONArray(str);
		// 前台传进来的JSON对象数量
		int size = jsonArray.length();
		if (size == 0) { 
			// "没有JSON数据,请联系管理员"
			throw new ServiceException(MSG_PARSING_JSON);
		}
		if (size != 0) {
			JSONObject jsonObject = null;
			for (int i = 0; i < jsonArray.length(); i++) {
				jsonObject = jsonArray.getJSONObject(i);
				// 逐个获取并解析数据([{"title":"主板BOM","value":"1"},{"title":"小板BOM","value":"6"}])
				String packageDetailsTitle = jsonObject.get(TITLE).toString().trim();
				String packageDetailsValue = jsonObject.get(VALUE).toString().trim();
			 	ScProductionPackageDetails scProductionPackageDetails = new ScProductionPackageDetails();
				// 保存数据		 
				scProductionPackageDetails.setTechnicalInformation(packageDetailsTitle);
				scProductionPackageDetails.setTechnicalDataDescription(packageDetailsValue );
				scProductionPackageDetails.setRemark(packageDetailsFlags);
				scProductionPackageDetails.setSort(packageDetailsSort);
				scProductionPackageDetails.setColor(packageDetailsColor);
				scProductionPackageDetails.setLastColor(strLastColor);
				scProductionPackageDetailsService.save(scProductionPackageDetails);
			}
		}
	}
} catch (Exception e) {
	logger.error("保存资料包明细出错:" + e.getMessage());
	throw new ServiceException("保存资料包明细出错:" + e.getMessage());
}
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
可以使用以下步骤来实现ajax提交数据后台并跳转到新的jsp页面,同时携带多个参数: 1. 在前端页面中使用ajax提交数据后台jsp页面,例如: ``` $.ajax({ type: "POST", url: "backend.jsp", data: { name: "John", age: 30 }, success: function(response) { // 功提交后的操作 var result = JSON.parse(response); // 将后台返回的json字符串转换为对象 var id = result.id; var status = result.status; window.location.href = "newPage.jsp?id=" + id + "&status=" + status; // 跳转到新的jsp页面并携带参数 }, error: function() { // 提交失败后的操作 window.location.href = "error.jsp"; // 跳转到错误页面 } }); ``` 2. 在后台jsp页面中获取前端提交的数据,并根据需要进行处理,例如: ``` String name = request.getParameter("name"); int age = Integer.parseInt(request.getParameter("age")); // 进行数据处理 ... int id = 123; String status = "success"; JSONObject json = new JSONObject(); // 创建json对象 json.put("id", id); // 添加属性值 json.put("status", status); response.getWriter().write(json.toJSONString()); // 将json对象转换为字符串并返回给前端页面 ``` 3. 在新的jsp页面中获取携带的参数并使用,例如: ``` <% int id = Integer.parseInt(request.getParameter("id")); String status = request.getParameter("status"); // 使用参数进行页面展示或其他操作 %> ``` 注意事项: - 在前端页面中使用ajax提交数据时,要注意设置请求类型和提交的数据格式。 - 在后台jsp页面中获取提交的参数时,要注意参数的名称和类型。 - 在后台jsp页面中返回数据时,可以使用json格式,便于前端页面处理。 - 在新的jsp页面中获取携带的参数时,要注意参数的名称和类型。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值