我的需求是:在SSH2+JQuery框架下,用Ajax实现文本框获取商品名称后,该商品的相关信息自动显示在对应的页面控件中。
action是这样写的:
public String selectStockInfoByKind(){
Object [] obj = new Object[]{this.getKindId()};
List middle = (List)this.getCorpFileService().autoShowModeNameByKindId(obj);
int count = middle.size();
selectKinds = new ArrayList<String>(count);
Iterator iterator = middle.iterator();
StringBuffer jsonString = new StringBuffer();
jsonString.append("[");
int i = 0;
while(iterator.hasNext()){
i++;
this.setStock((Stock)iterator.next());
jsonString.append("{");
jsonString.append("modeName:'");
jsonString.append(this.getStock().getModeName());
jsonString.append("',unitId:");
jsonString.append(this.getStock().getUnitId());
jsonString.append(",kindNum:");
jsonString.append(this.getStock().getKindNum());
jsonString.append("}");
if(i < count){
jsonString.append(",");
}
}
jsonString.append("]");
selectKinds.add(jsonString.toString());
return SUCCESS;
}
这个json数组的格式为:[{modeName:'2米高3米宽',unitId:1,kindNum:1860}]JSP页面是这样写的:
function selectStockInfoByKind(sId){
var Options = {
type: "POST",
url: "selectStockInfoByKind.htm?kindId="+sId,
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: GetStockInfo_CallBack,
error: function(x, e) {
alert(x.responseText);
}
};
$.ajax(Options);
}
function GetStockInfo_CallBack(response){
if (response == null || response == "")
return;
var objModeName = self.parent.document.getElementById("modeName");//型号
var objUnitId = self.parent.document.getElementById("unitId");//单位
var objKindNum = self.parent.document.getElementById("kindNum");//数量
/*
这个方法所在JSP页面,是以JQuery弹出层的方法显示的,所以该处绑定值指定控件时为父窗体的控件
self.parent.document.geeElementById("modeName");
*/
$.each(eval(responsedata),
function(key,item){
objModeName.value = item.modeName;
if(item.untiId == 0){
objUnitId.value = "张";
}
if(item.untiId == 1){
objUnitId.value = "台";
}
if(item.untiId == 2){
objUnitId.value = "米";
}
if(item.untiId == 3){
objUnitId.value = "件";
}
if(item.untiId == 4){
objUnitId.value = "个";
}
if(item.untiId == 5){
objUnitId.value = "箱";
}
objKindNum.value = item.kindNum;
});
}
现在的问题是,怎么把后台获取的值,显示在页面上啊?
这样写显示不出来。
另外,如果商品名称更改的话,该商品的相关信息会重新加载到相关控件中吗?
高手一定得帮忙啊!
action是这样写的:
public String selectStockInfoByKind(){
Object [] obj = new Object[]{this.getKindId()};
List middle = (List)this.getCorpFileService().autoShowModeNameByKindId(obj);
int count = middle.size();
selectKinds = new ArrayList<String>(count);
Iterator iterator = middle.iterator();
StringBuffer jsonString = new StringBuffer();
jsonString.append("[");
int i = 0;
while(iterator.hasNext()){
i++;
this.setStock((Stock)iterator.next());
jsonString.append("{");
jsonString.append("modeName:'");
jsonString.append(this.getStock().getModeName());
jsonString.append("',unitId:");
jsonString.append(this.getStock().getUnitId());
jsonString.append(",kindNum:");
jsonString.append(this.getStock().getKindNum());
jsonString.append("}");
if(i < count){
jsonString.append(",");
}
}
jsonString.append("]");
selectKinds.add(jsonString.toString());
return SUCCESS;
}
这个json数组的格式为:[{modeName:'2米高3米宽',unitId:1,kindNum:1860}]JSP页面是这样写的:
function selectStockInfoByKind(sId){
var Options = {
type: "POST",
url: "selectStockInfoByKind.htm?kindId="+sId,
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: GetStockInfo_CallBack,
error: function(x, e) {
alert(x.responseText);
}
};
$.ajax(Options);
}
function GetStockInfo_CallBack(response){
if (response == null || response == "")
return;
var objModeName = self.parent.document.getElementById("modeName");//型号
var objUnitId = self.parent.document.getElementById("unitId");//单位
var objKindNum = self.parent.document.getElementById("kindNum");//数量
/*
这个方法所在JSP页面,是以JQuery弹出层的方法显示的,所以该处绑定值指定控件时为父窗体的控件
self.parent.document.geeElementById("modeName");
*/
$.each(eval(responsedata),
function(key,item){
objModeName.value = item.modeName;
if(item.untiId == 0){
objUnitId.value = "张";
}
if(item.untiId == 1){
objUnitId.value = "台";
}
if(item.untiId == 2){
objUnitId.value = "米";
}
if(item.untiId == 3){
objUnitId.value = "件";
}
if(item.untiId == 4){
objUnitId.value = "个";
}
if(item.untiId == 5){
objUnitId.value = "箱";
}
objKindNum.value = item.kindNum;
});
}
现在的问题是,怎么把后台获取的值,显示在页面上啊?
这样写显示不出来。
另外,如果商品名称更改的话,该商品的相关信息会重新加载到相关控件中吗?
高手一定得帮忙啊!
解决方案 »
- JSF,richface中日历空间显示问题
- 新手求教一个 存储问题.
- 哪些持久层框架支持Access
- 求助,webservices中复杂对象嵌套的传递,欢迎讨论
- hibernate 奇怪问题
- spring+struts+hibernate问题 在线急等
- 真正菜鸟求助:如何用HIbernate写一个通用性高的查询语句
- 关于hibernate中的session.list()方法的疑问
- 在非Web环境下spring 上下文怎么获得?
- 高分求好的数据层封装源码,要求是不能使用entitybean的,不能封装sql的,只能是对jdbc友好封装.
- 关于在页面用jstl操作map的一个问题
- ★★★★log4j多线程写同一个文件,log丢失★★★
发送的请求能到达?
我都把数组格式给你贴出来了,你还在质疑这个问题?