手册文档的这部分讲解spring framework对表示层的支持。(重点讲解基于web的表示层)
Spring framework自己的框架spring web mvc讲解占了两章,第三章主要是spring framework对其他web框架的整合,比如struts和JSF。最后将会讨论spring mvc portlet框架.
第一章, web mvc框架
第二章, 视图技术
第三章, 集成其他web框架
第四章, Portlet mvc框架
1.1 [b]介绍下spring web framework[/b]
Spring web mvc 框架是围绕DispatcherServlet通过配置映射来分发请求到处理器。视图解析,本地化和主题解析,当然对上传文件也有很好的支持。默认的处理器是基于@Controller和@RequestMapping注解,提供一个高度灵活的处理器方法集,在spring3.0中,@Controller也可以通过@PathVariable注解和其他一些特性创建基于RESTful的站点和应用.
[quote]
开放扩展。。。
在spring web MVC中一个关键的设计原则,同时也是spring框架的基本原则,即:对扩展开放,对修改关闭 的原则
在spring web MVC中有一些核心类标注了final。作为一个开发人员,你不能添加自己的动作到这些类中。这些是是特殊的设计原则,而不是故意给人制造独断专横的印象
同时 你也不能添加切面到这些spring mvc类中。例如,你不能给AbstractController.setSynchronizeOnSession()方法添加切面,你可以阅读”理解AOP代理”一章获取更多关于“final方法不能添加切面”的更多内容。
[/quote]
1.3 [b]实现控制器(Implementing Controllers)[/b]
控制器功能是提供一个访问你自己写的各种业务接口程序,它还可以把用户通过显示层输入的数据放入model层中,并把处理结果返回给显示层。Spring使用抽象类实现了一个基本的控制器,你可以通过它来创建自己的控制器。
Spring2.5的文档介绍了基于像 @RequestMapping, @RequestParam, @ModelAttribute等等基于注解的方式来编写MVC控制器,spring MVC和Portlet MVC都支持这些注解。通过注解的方式,控制器不需要扩展其他类或者实现其他接口。此外,你能够通过简单的配置来得到Servlet或者Portlet的基本功能而不依赖它们所提供的类库 。
[quote="提示"]
Spring提供了一个用本节讲述的基于注解的web程序例子:PetClinic,这个例子在org.springframework.samples.petclinic模块中
最近在官网发现一个很不错的blog,提供了一个showcase例子,很不错噢
附上地址[url=http://blog.springsource.com/2010/07/22/spring-mvc-3-showcase/]showcase链接[/url]
[/quote]
呵呵 看到了吧,@Controller和@RequestMapping注解可以很灵活的命名和标记。在上面的例子中,这个方法没有提供参数,返回了ModelAndView类型,当然还有很多其他的表示方法存在,提供了比这个更多的功能,后面的章节将会介绍。ModelAndView, @Controller, @RequestMapping都是spring mvc提供的很基础的实现。接下来我们会讲到这些东西是如何的广泛融入servlet编程环境中的。
1.3.1 [b]使用@Controller定义一个控制器[/b]
@Controller注解扮演了控制器类里很有分量的一个角色,通过它,你不需要继承任何其他的控制器基类或者引用任何的servlet的api,当然如果认为确实需要,你也可以使用servlet提供的功能.
给一个类加上了@Controller注解,分发器就可以通过这个注解来获取这个类中带有@RequestMapping注解的方法。
不过你定义了@Controller类之后,spring并不知道去哪里找这个类,你需要借助spring-context组件来把装有@Controller的包添加到spring的环境里去,像下面这样
Spring framework自己的框架spring web mvc讲解占了两章,第三章主要是spring framework对其他web框架的整合,比如struts和JSF。最后将会讨论spring mvc portlet框架.
第一章, web mvc框架
第二章, 视图技术
第三章, 集成其他web框架
第四章, Portlet mvc框架
1.1 [b]介绍下spring web framework[/b]
Spring web mvc 框架是围绕DispatcherServlet通过配置映射来分发请求到处理器。视图解析,本地化和主题解析,当然对上传文件也有很好的支持。默认的处理器是基于@Controller和@RequestMapping注解,提供一个高度灵活的处理器方法集,在spring3.0中,@Controller也可以通过@PathVariable注解和其他一些特性创建基于RESTful的站点和应用.
[quote]
开放扩展。。。
在spring web MVC中一个关键的设计原则,同时也是spring框架的基本原则,即:对扩展开放,对修改关闭 的原则
在spring web MVC中有一些核心类标注了final。作为一个开发人员,你不能添加自己的动作到这些类中。这些是是特殊的设计原则,而不是故意给人制造独断专横的印象
同时 你也不能添加切面到这些spring mvc类中。例如,你不能给AbstractController.setSynchronizeOnSession()方法添加切面,你可以阅读”理解AOP代理”一章获取更多关于“final方法不能添加切面”的更多内容。
[/quote]
1.3 [b]实现控制器(Implementing Controllers)[/b]
控制器功能是提供一个访问你自己写的各种业务接口程序,它还可以把用户通过显示层输入的数据放入model层中,并把处理结果返回给显示层。Spring使用抽象类实现了一个基本的控制器,你可以通过它来创建自己的控制器。
Spring2.5的文档介绍了基于像 @RequestMapping, @RequestParam, @ModelAttribute等等基于注解的方式来编写MVC控制器,spring MVC和Portlet MVC都支持这些注解。通过注解的方式,控制器不需要扩展其他类或者实现其他接口。此外,你能够通过简单的配置来得到Servlet或者Portlet的基本功能而不依赖它们所提供的类库 。
[quote="提示"]
Spring提供了一个用本节讲述的基于注解的web程序例子:PetClinic,这个例子在org.springframework.samples.petclinic模块中
最近在官网发现一个很不错的blog,提供了一个showcase例子,很不错噢
附上地址[url=http://blog.springsource.com/2010/07/22/spring-mvc-3-showcase/]showcase链接[/url]
[/quote]
@Controller
public class HelloWorldController {
@RequestMapping("/helloWorld")
public ModelAndView helloWorld() {
ModelAndView mav = new ModelAndView();
mav.setViewName("helloWorld");
mav.addObject("message", "Hello World!");
return mav;
}
}
呵呵 看到了吧,@Controller和@RequestMapping注解可以很灵活的命名和标记。在上面的例子中,这个方法没有提供参数,返回了ModelAndView类型,当然还有很多其他的表示方法存在,提供了比这个更多的功能,后面的章节将会介绍。ModelAndView, @Controller, @RequestMapping都是spring mvc提供的很基础的实现。接下来我们会讲到这些东西是如何的广泛融入servlet编程环境中的。
1.3.1 [b]使用@Controller定义一个控制器[/b]
@Controller注解扮演了控制器类里很有分量的一个角色,通过它,你不需要继承任何其他的控制器基类或者引用任何的servlet的api,当然如果认为确实需要,你也可以使用servlet提供的功能.
给一个类加上了@Controller注解,分发器就可以通过这个注解来获取这个类中带有@RequestMapping注解的方法。
不过你定义了@Controller类之后,spring并不知道去哪里找这个类,你需要借助spring-context组件来把装有@Controller的包添加到spring的环境里去,像下面这样
<context:component-scan base-package="org.springframework.samples.petclinic.web"/>