ext ajax与struts传json对象 实例

本文详细介绍了如何利用Ext.js的JavaScript代码与Struts配置及Java代码,实现AJAX JSON更新操作,包括后台处理逻辑、解析JSON对象及展示更新后的数据流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ext ajax json与struts实例 

 

    ext的javascript代码:

 

//提交修改
	function submitUpdate(grid,colIndex,rowIndex,id){
		//后台semanticsBean
		var sentence = Ext.getCmp('updateSentence').getValue();
		var template = Ext.getCmp('updateTemplatesql').getValue();
		var tableids = Ext.getCmp('updateTableids').getValue();
		var jsonBean = {
			'bean.id' : id,
			'bean.sentence' : sentence,
			'bean.template' : template,
			'bean.tableids' : tableids
		}
		var bean = {id:id,sentence:sentence,template:template,tableids:tableids};
		Ext.Ajax.request({
			url:'./modifySemantics',
			params:jsonBean,
			success:function(r,o){
				reRenderTable(grid,colIndex,rowIndex,bean);
			},
			failure:function(){
				Ext.Msg.alert("更新有误","更新有误,当前数据过旧,请刷新重试");
			}
		});
	}

 

 

struts配置文件:

 

<!-- 更新语义库记录 -->
<action name="modifySemantics" class="com.xxxx.vbap.nl.action.NLManageAction" method="updateSemanticsList">
</action>

 

 

strut java代码:

 

   类中属性

	 // 前台传输实体bean
	private SemanticsSqlTemp bean = new SemanticsSqlTemp();

 

 

public String updateSemanticsList(){
		try{
			if(this.bean == null || this.bean.getId() == 0){
				logger.error("更新语义库sql模板报错,传输数据缺少ID");
				return Action.NONE;
			}
			ArrayList<Object> keyvalueList = new ArrayList<Object>();
			ArrayList<Class<?>> classtypeList = new ArrayList<Class<?>>();
			bean.setUpdateData(keyvalueList, classtypeList);
			String sql = "update sql_template_set set sentence = ?,templatesql = ?,tableids = ? where id = ?";
			NLSqlAnalysis.updateByID(sql, bean, keyvalueList, classtypeList);
			return Action.NONE;
		}catch (Exception e) {
			logger.error("更新语义库sql模板报错",e);
			return Action.ERROR;
		}
	}

 这样就可以让struts接收json对象

 

 

再附上一个解析传回的json对象代码

 

function showSemanticsList(type,renderDivID)
	{
		//var showradio = Ext.getCmp("showRadioGroup"); 
		//var showtype = getRadioInputValue(showradio);//获取数据标志
		Ext.Ajax.request({
			url:'./showSemantics',
			params:{
				showType:type
			},
			success : function(r,o){
				var re = Ext.decode(r.responseText);
				if(re.length>0)
					showSemanticsData(type,re,renderDivID);//TODO:
				else{
					document.getElementById(renderDivID).innerHTML = "";
					Ext.Msg.alert("无所选数据");
				}
			},
			failure : function(){
				Ext.Msg.alert("语义库查询有误","语义库查询有误");
			}
		});
	}

 

 在js中解析json对象:

 

 

function showItem(grid,colIndex,rowIndex){
		var id = rowIndex.data.id;
		Ext.Ajax.request({
			url:'./getSemantics',
			params:{id:id},
			success:function(r,o){
				var re = Ext.decode(r.responseText);
				showItemEditPage(2,grid,colIndex,rowIndex,re);
			},
			failure:function(){Ext.Msg.alert("语义查询有误","语义查询有误");}
		});
	}

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值