先介绍一下业务需求:在浏览器输入localhost:8888/MicroBlog/test.json,要求服务器返回{"id":"1","name":"messi"}字符串,以供javascript回调函数处理。
MVC:M代表的是依赖的业务逻辑组件,功能就是
如何获得上述json字符串,V代表视图资源,在这里
就是上述字符串,C的功能是怎样
解析"localhost:8888/MicroBlog/test.json"这个请求字符串.
Spring的注解驱动功能可以将普通的java对象转化为Controller类
package com.microblog.web;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
/**
* Controller类
* @author 晔
*
*/
@Controller
public class TestController {
@RequestMapping(value="/test.json",method=RequestMethod.GET)
public String getUsers(@PathVariable("namePrefix") String prefix, Model model) {
model.addAttribute("json", "[{'id':'1','name':'messi'},{'id':'2','name':'pedro'}]");
System.out.println("hello 你好周杰伦");
return "jsonView";
}
}
注解加上去了还不够,这是我在百度上看到的绝大部分情形,想要框架捕获这些注解还要这一手
<context:component-scan base-package="**/web/**" />
这时候我们要来做Viewer了,很多搞JSON的看到springsource上推荐的那个MappingJacksonJsonView类和超长的英文解释后直接晕了———跟我一样,其实完全没必要,请静静的思考一下,我们要的json是什么?还不是字符串,只不过改了个潮点的名字而已,只要能获得HttpServletResponse对象一切OK
package com.microblog.web;
import java.io.PrintWriter;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.view.AbstractView;
/**
* Viewer类
* @author 晔
*
*/
public class TestView extends AbstractView{
protected void renderMergedOutputModel(Map<String, Object> model,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
PrintWriter out=response.getWriter();
out.println((String)model.get("json"));//json字符串从这里走向世界
}
}
剩下的就简单了,配置TestController产生的视图名字jsonView由对应的视图类TestView处理
<bean id="test" class="com.microblog.web.TestController"/>
<bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="1" />
</bean>
<bean id="jsonView" class="com.microblog.web.TestView" />
后记:本来我不想写这篇文章的,有注释完全可以记下我所学到的东西,但是解决这次的问题我访问了大量的关于Spring3.0介绍的英文论坛,发现早在09年的时候国外就对3.0有了成熟的应用了,而我今天才掌握一点皮毛,想起两年前的巴萨是何等的辉煌,而过去一周的巴萨却判若两人,被皇马戏弄于鼓掌,怀古而伤今,由感而发,写下此文,与此时此刻与我有同样心情的同志共勉!
分享到:
相关推荐
springmvc3.0+hibernate+interceptor+AOP注解+EHcache
SpringMVC 3.0 HelloWorld 源码 (Maven)
springmvc3.0所需jar绿色包
简单 SpringMVC3.0 dmeo
springmvc3.0,完全基本注解,简单易用;与springmvc结合的文件上传,配置一下即可,非常简单
SpringMVC3.0+MyIbatis3.0(分页示例
springmvc3.0帮助文档,带您快速入门
SpringMVC学习(一)——SpringMVC入门小程序
springmvc3.0实战指南 讲的很不错!适合初学者,对开发者很有指导意义!
SpringMVC 3.0实战指南,PPT Java Web开发的最好的MVC框架指南
SpringMVC学习(四)——Spring、MyBatis和SpringMVC的整合
主要讲些SpringMVC的注解,以及常用的注解方式介绍。大家可以下下来看看,挺好的。
SpringMVC学习(十二)——SpringMVC中的拦截器
SpringMVC3.0+Hibernate3.0实现登录注册,jQuery实现前台验证,jar包和数据库文件都在里面,下载后解压导入就能运行
MyEclipse8.6+SpringMVC3.0+Hibernate3.3环境搭建,文档描述的很详细每个步骤都有文字和图片说明。文档还包括源代码和配置文件信息,特别适合初学者,本人自己写的。
springMVC3.0 + MyBatis3.1 花了2天整合成功的DEMO Spring 用的是基于注解的 MyBatis 用的是基于XML的 带表结构 有增删改查的小例子(含事务) 个人认为这套小框架有有兴趣的人 完全可以自己修改修改, 作为自己以后...
这个是springMVC3.0的中文教程,欢迎大家下载
springMVC springframework cglib asm aspectjtl aspectjweaver aopalliance common-logging等一些必要jar包
使用springMVC+ajax+json的一个小demo,希望对读者有用