加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

项目____SSH框架下Ajax数据通信过程中数据读取不到的问题

发布时间:2020-12-16 01:52:13 所属栏目:百科 来源:网络整理
导读:—————————————————————————————————————————— action代码: public String getOgcConfigById(){CData ogc = this.ddsManage.getOgcConfigById(data);try {Struts2Utils.getResponse().getWriter().println(JSONAr

——————————————————————————————————————————

action代码:

public String getOgcConfigById(){
		CData ogc = this.ddsManage.getOgcConfigById(data);
		try {
			Struts2Utils.getResponse().getWriter().println(JSONArray.fromObject(ogc));
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}

这段代码是纠正过的,原本是下面这句,以为只查询了一个结果用CData接收 可以像数字或者字符一样直接当参数传入。

Struts2Utils.getResponse().getWriter().println(ogc);
但是经过这句代码后在前端界面无法读取数据。

究其原因是没有弄明白这条代码的根本面目,以及JSONArray.fromObject()的根本作用。



jsp页面代码:

function Edit(id){
 		var id=id;	
 		$.ajax({
 			 url:'<c:url value="/basicInfor/ddsManage/dds!getOgcConfigById.action"/>',type:"POST",async: false,dataType : "json",data : 'id='+id,success:function(data) {
				   //使用struts2框架下的ajax传回数据 将CData类型转成了JSONArray 所以data只有一条数据也要选择第一个:data[0]
				   $("#uid").val(data[0].id);
				   $("#ukey").val(data[0].config_key);
				   $("#uregion").val(data[0].region);
				   $("#uusable").val(data[0].usable);
			   }
 		})
				   $('#myModal3').modal("show");
 		
 	}
这段代码也是纠正过的,原本代码是data.id没有选取元素。因为当时以为像传入数值类型一样 可以直接调用。而如果转化成了JSONArray类型 无论传入多少个值必须选择某个元素后再利用keyvalue取值。

——————————————————————————————————————————

tip:

举例:jsp利用表格提交id="abc"字段,在action中利用data.get("abc")获取值,为空!在mapper.xml中直接使用#{abc}可以获得该值。


因为:一个是存储到request范围的值。项目中的data是package ssdevframework.front.action;包中的abstract class BaseActionSupport内声明的CData类型变量。data会读取request范围内相应key的值。而在action中要想读取对应id的值,则需要先声明private修饰的同名变量,获取到request中对应的值,然后存储到data对应的key中。才能通过data获取。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读