`
WSZ1102.shu
  • 浏览: 15101 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsonp

    博客分类:
  • json
阅读更多
以前在培训的时候,我们的老师写的一个项目中,用到了springside的概念,当然当时主要是分页和权限控制相关的,当时感觉很难,也太复杂,所以就没有仔细去看。最近在iteye上面看到一篇文章是关于springside4.0,最新版本,最近感觉自己也快到瓶颈了,所以便打开看了看,结果一发不可收拾,在开发中,经理提醒我们要尽量用jsonp去完成一些修天,添加什么的内容,稍微的看了看jsonp,据说在跨域上来说很不错,所以就看了看springside4.0的相关内容,在很多方面都提供了很大的帮助。
好了,废话不说,谢谢相关springside4.0关于jsonp的封装吧。
springside4.0通过jackson2.0.1版本来实现jsonp,并且自己封装了一个类取名为:jsonMapper
而在前台的请求中是通过jquery的ajax提交来实现的,在jquery的ajax的配置中提供了一个dataType,我们可以讲dataType=“jsonp”来实现返回值的类型,同事我们需要在action处理中传递一个默认的callback值,而那个值是一个常量:
private static final String DEFAULT_JQUERY_JSONP_CALLBACK_PARM_NAME = "callback";

目前只是编写在spring mvc下的内容,所以在显示代码中也中只能写写spring mvc的:
public @ResponseBody Object addComment(@RequestParam(DEFAULT_JQUERY_JSONP_CALLBACK_PARM_NAME) String callbackName,
			@PathVariable short type,String content, int eid,int cid){

注意上列方法中传递的第一个参数,他会做为jquery ajax方法的默认返回值
返回中:
Map<String, Object> map = Collections.singletonMap("content", this.emailRelativeService.insertERelatvie(relative));
mapper.toJsonP(callbackName, map)

而在前台的调用中,我们就可以通过
dataType : "jsonp",
success: function(data){
	alert(data.content.如果返回的是对象的话,可以写对象的属性);	
}

希望对大家有所帮助,附件中上传jackson-2.0.1所需jar包
springside真的很不错,希望有时间的话,大家可以去多学习学习,多了解一下
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics