SpringMVC 3.0下搞JSON——为了忘却的纪念
先介绍一下业务需求:在浏览器输入localhost:8888/MicroBlog/test.json,要求服务器返回{"id":"1","name":"messi"}字符串,以供javascript回调函数处理。
MVC:M代表的是依赖的业务逻辑组件,功能就是如何获得上述json字符串,V代表视图资源,在这里就是上述字符串,C的功能是怎样解析"localhost:8888/MicroBlog/test.json"这个请求字符串.
Spring的注解驱动功能可以将普通的java对象转化为Controller类
这时候我们要来做Viewer了,很多搞JSON的看到springsource上推荐的那个MappingJacksonJsonView类和超长的英文解释后直接晕了———跟我一样,其实完全没必要,请静静的思考一下,我们要的json是什么?还不是字符串,只不过改了个潮点的名字而已,只要能获得HttpServletResponse对象一切OK
后记:本来我不想写这篇文章的,有注释完全可以记下我所学到的东西,但是解决这次的问题我访问了大量的关于Spring3.0介绍的英文论坛,发现早在09年的时候国外就对3.0有了成熟的应用了,而我今天才掌握一点皮毛,想起两年前的巴萨是何等的辉煌,而过去一周的巴萨却判若两人,被皇马戏弄于鼓掌,怀古而伤今,由感而发,写下此文,与此时此刻与我有同样心情的同志共勉! 16 楼 爪哇岛岛主 2011-04-22 还是基础要过关才是王道,这些都是基础! 17 楼 kjj 2011-04-22 引用
注解要强制框架去捕获的,至于那MappingJacksonJsonView,我是没耐心去看他的文档了,不过我知道sf上有个struts对json的插件,竟然是把Action序列化成json到客户端,如此反常规的做法让我不得不“返璞归真”直接调用response了,不知道你是哪种情况
你还真是没仔细看,人家可以指定root的,action是个根对象,你完全可以指定某一个根
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 18 楼 eya 2011-04-22 看一下源码,要不了20分钟,什么都明白了! 19 楼 invincibleLiu 2011-04-22 kjj 写道引用
注解要强制框架去捕获的,至于那MappingJacksonJsonView,我是没耐心去看他的文档了,不过我知道sf上有个struts对json的插件,竟然是把Action序列化成json到客户端,如此反常规的做法让我不得不“返璞归真”直接调用response了,不知道你是哪种情况
你还真是没仔细看,人家可以指定root的,action是个根对象,你完全可以指定某一个根
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
哈哈,我也是草草看了下别人的代码,没看文档了,真是贻笑大方,多谢指教 20 楼 invincibleLiu 2011-04-22 rocketball 写道http://liukai.iteye.com/blog/975103
看下这篇文章吧,可以全部采用标注的形式
不行啊,jdbc查询返回的是List(里面的元素是String[])框架无法序列化,来了个406错误 21 楼 hjg1988 2011-04-22 @ResponseBody就可以了。String[]怎么可能无法序列化,可能是其它原因造成的吧。
Spring官网上有专门的例子的,有一个视频教程可以下载,一看就明白了,很不错。 22 楼 invincibleLiu 2011-04-23 hjg1988 写道@ResponseBody就可以了。String[]怎么可能无法序列化,可能是其它原因造成的吧。
Spring官网上有专门的例子的,有一个视频教程可以下载,一看就明白了,很不错。
搞定了,卧槽!没有重部署myeclipse里虽然导入了jackson但是tomcat没有及时更新,这下可以享受jackson的高效率了~ 23 楼 rocketball 2011-04-23 invincibleLiu 写道rocketball 写道http://liukai.iteye.com/blog/975103
看下这篇文章吧,可以全部采用标注的形式
不行啊,jdbc查询返回的是List(里面的元素是String[])框架无法序列化,来了个406错误
少jackson吧,我也遇到过这个问题