Java Web控制层发送Json对象数据(一)

问题:在部分要使用交互性较好的网站开发中,前台使用Jquery、Ext等框架的情况下,数据的异步传输使用的是Json比较适合异步式网络交付的一种数据格式:

注:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

1、客服端提交访问请求

 在Ext中,我们使用Ext提供的特殊的Ajax来讲客服端数据(主要是表单数据)传入后台服务端的Controller,简单一个删除按钮操作的Ext框架写法如下:
 Ext.Ajax.request({
                                                       url : './DelServlet',
                                                       //参数传入
                                                       params : {roomids:ids},
                                                       waitTitle : '请稍候',
                                                       waitMsg : '系统正在提交该任务,请稍候...',
                                                       success : function(response) {
                                                                //返回的Json数据对象
                                                                var msg = Ext.decode(response.responseText);
                                                                Ext.MessageBox.alert("提示",msg.msg);
                                                                ds.reload({params : {start : 0,limit : page}});
                                                                                                                          
                                                       },
                                                       failure : function() {
                                                                Ext.MessageBox.alert("提示","您出错啦,请慢慢检查...");
                                                       }
                                                  });


 

以上ajax处理块放在一个panel中的tbar中。

 

2、控制层接受请求并处理

上面的请求到达DelServlet所指示的控制层后,在Servlet中使用Request接受传入的参数和数据,传入的参数可能是一个数组类型对象,再使用对应的服务层组件和Dao层结合处理业务逻辑,比如删除,删除成功后我们再通知客服端将会将Json对象的数据发送,

ResponseUtils.renderJson(rp, "{\"success\":true,msg:\""+"删除成功!"+"\"}");

上面的renderJson()方法将封装好一遍达到扩展性如下:

public static void render(HttpServletResponse response,String text) {
		response.setContentType("application/json;charset=UTF-8");
		response.setHeader("Pragma", "No-cache");
		response.setHeader("Cache-Control", "no-cache");
		response.setDateHeader("Expires", 0);
		try {
			if(StringUtils.isBlank(text)){
				text="";
			}
			response.getWriter().write(text);
			response.getWriter().flush();
			response.getWriter().close();
		} catch (IOException e) {
			log.error(e.getMessage());
        	if(!"class org.apache.catalina.connector.ClientAbortException".equals(e.getClass().toString()))
            	e.printStackTrace();
		}
	}


这样,成功删除的结果是返回msg=删除成功,和success=true

关于采用Ext执行较为复杂的查询数据库并且将数据列表显示出来,下一节详细记录之。



 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值