spring mvc
http://static.springsource.org/spring/docs/3.0.0.M3/spring-framework-reference/html/ch18s02.html
18.2.1 URI Templates
///////////////////////////////////////////////////////////
RequestMethod.GET
///////////////////////////////////////////////////////////
@RequestMapping("/users/{userid}", method=RequestMethod.GET)
public String getUser(@PathVariable String userId) {
// implementation omitted...
}
@RequestMapping("/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable("ownerId") String theOwner, Model model) {
// implementation omitted
}
@RequestMapping("/owners/{ownerId}/pets/{petId}", method=RequestMethod.GET)
public String findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {
Owner owner = ownerService.findOwner(ownderId);
Pet pet = owner.getPet(petId);
model.addAttribute("pet", pet);
return "displayPet";
}
@Controller
@RequestMapping("/owners/{ownerId}/**")
public class RelativePathUriTemplateController {
@RequestMapping("/pets/{petId}")
public void findPet(@PathVariable String ownerId, @PathVariable String petId, Model model) {
// implementation omitted
}
}
method parameters that are decorated with the @PathVariable annotation can be of any simple type such as int, long, Date... Spring automatically converts to the appropriate type and throws a TypeMismatchException if the type is not correct.
///////////////////////////////////////////////////////////
RequestMethod.PUT
///////////////////////////////////////////////////////////
The @RequestBody method parameter annotation is used to indicate that a method parameter should be bound to the value of the HTTP request body. For example,
@RequestMapping(value = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body, Writer writer) throws IOException {
writer.write(body);
}
** Mapping the request body with the @RequestBody annotation
18.2.2 Returning multiple representations
A RESTful architecture may expose multiple representations of a resource. There are two strategies for a client to inform the server of the representation it is interested in receiving.
To support multiple representations of a resource Spring provides the ContentNegotiatingViewResolver to resolve a view based on the file extension or Accept header of the HTTP request.
@Controller
public class ContentController {
private List<SampleContent> contentList = new ArrayList<SampleContent>();
@RequestMapping(value="/content", method=RequestMethod.GET)
public ModelAndView getContent() {
ModelAndView mav = new ModelAndView();
mav.setViewName("content");
mav.addObject("sampleContentList", contentList);
return mav;
}
}
18.2.3 Views
Several views were added in Spring 3 to help support creating RESTful services. They are:
*
AbstractAtomFeedView - return an Atom feed
*
AbstractRssFeedView - returns a RSS feed
*
MarshallingView - returns an XML representation using Spring's Object to XML mapping (OXM) functionality
[Note] Note
Available separately is the JacksonJsonView included as part of the Spring JavaScript project.
18.2.3.2 XML Marshalling View
18.2.4 HTTP Method Conversion
18.2.5 ETag support
这个先略过。
18.2.6 Exception Handling
感觉 spring3 的异常处理还是比较变态的,至少比 struts2 麻烦多了。刚又看到一篇文章:http://www.oschina.net/bbs/thread/13937,难道真的这么变态么?
不过这篇文章看起来还不赖:
http://blog.csdn.net/sinlff/archive/2010/09/09/5872724.aspx
其他:
有人说 springmvc 对静态资源的处理需要自己定制:
http://www.iteye.com/topic/743651
以上只是对spring 3 mvc 的一些粗略的了解。信息渠道主要是 spring3 的官方文档。具体应用方面的知识还非常欠缺。从网上找了些其他的例子:
http://www.iteye.com/topic/748006
http://ttaale.iteye.com/blog/761877
http://mxdba.iteye.com/blog/643168 (用户注册的例子)
这篇文章上有 spring3 rest 的文件上传和一个简单的demo,不错:
http://www.javabloger.com/page/9?author=1
百度贴吧上的一篇 demo:
http://tieba.baidu.com/f?kz=883344164
http://www.blogjava.net/pengo/archive/2010/07/03/325164.html
分享到:
相关推荐
内容概要:超详细SpringMVC笔记,包含初始SpringMVC,请求与响应,REST风格,SSM整合,表现层数据封装,异常处理器,项目异常处理方案,前后台联调,拦截器等知识点适合人群:学习过Spring课程的人群,初步理解框架...
1. **Spring MVC概述**:介绍SpringMVC作为Spring框架的一部分,如何简化Java Web应用程序的开发,以及其与其他MVC框架的区别。 2. **DispatcherServlet**:这是SpringMVC的入口点,负责请求的分发。讲解它如何拦截...
本学习笔记将涵盖前端控制器、文件上传、异常处理以及开发过程中的心得小结。 1. **前端控制器(DispatcherServlet)** 前端控制器是SpringMVC的核心组件,负责接收所有HTTP请求,然后根据请求的类型和映射规则...
7. **RESTful API设计**:利用SpringMvc构建符合REST原则的API,实现资源的CRUD操作。 这些笔记和教案将涵盖SpringMvc的各个方面,帮助你深入理解其工作原理和实践技巧,无论你是初学者还是有一定经验的开发者,都...
Spring MVC 是目前最主流的 MVC 框架之一 Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请 求的控制器,而无须实现...支持 REST 风格的 URL 请求 采用了松散耦合可插拔组件结构,比其他 MVC 框架更具 扩展性和灵活性
1. **SpringMVC基本概念** - **MVC架构**:模型负责业务逻辑,视图负责展示数据,控制器负责接收请求并调用模型进行处理,最后更新视图。 - **DispatcherServlet**:SpringMVC的前端控制器,它负责接收所有请求,...
**SpringMVC笔记** SpringMVC是Spring框架的一部分,它是一个用于构建Web应用程序的轻量级、模型-视图-控制器(MVC)架构。在本文中,我们将深入探讨SpringMVC的核心概念、工作原理以及如何在实际项目中应用。 **...
1. **起步依赖(Starter Dependencies)**:SpringBoot通过starter依赖来简化构建配置,比如`spring-boot-starter-web`用于Web应用,`spring-boot-starter-data-jpa`用于数据库操作,`spring-boot-starter-data-rest...
在文档"springmvc第一天课堂笔记.docx"中,可能会详细讲解Spring MVC的基本概念,包括DispatcherServlet、ModelAndView、视图解析器等。而"springmvc第二天课堂笔记.docx"可能深入讨论文件上传的实现步骤,以及如何...
【Springmvc第一天课堂笔记】 Spring MVC 是 Spring 框架的一部分,它是一个基于 Model-View-Controller(MVC)设计模式的Web应用框架。在B/S系统中,MVC模式被广泛采用,其中C(Controller)是控制器,M(Model)...
这是一个关于使用SSM(Spring、SpringMVC、MyBatis)和SpringBoot技术栈构建的云学习笔记系统的项目。此项目可能适用于Java开发者的毕业设计,同时也涉及到微信小程序的开发。下面将详细介绍SSM和SpringBoot框架,...
Headline 学习文档记录. TODO :party_popper: Java Java 面试题 Java 基础:balloon: Java 进阶:balloon: Java Web:balloon: Mysql ...SpringMVC ...Git 学习笔记 PostWoman 第三方插件 IDE 设置与插件
springboot学习笔记 spring基础 Spring概述 Spring的简史 xml配置 注解配置 java配置 Spring概述 Spring的模块 核心容器CoreContainer Spring-Core Spring-Beans ...
本视频基于Maven+SpringMVC+Spring+MyBatis+Bootstrap的组合,快速开发一个完整的CRUD功能,视频除过对框架组合的基本使用外,还涉及到许多的开发细节:Bootstrap搭建页面,MyBatis逆向工程使用,Rest风格的URI,@...
在"自学b站黑马ssm框架思维导图XMind笔记"中,我们可以深入学习SSM的核心概念和使用技巧。下面,我们将逐一解析每个文件所涵盖的知识点。 1. **02IoC&DI.xmind** —— 控制反转(IoC)与依赖注入(DI) - IoC:...
这个资源包含的"spring学习文档及源码笔记"是深入理解并掌握 Spring MVC 的宝贵资料。下面,我们将详细探讨 Spring MVC 的核心概念、工作原理以及如何利用它来构建 Web 应用。 1. **Spring MVC 架构** - **...
1. **首页**:展示最新的笔记分享、热门话题等,提供快速入口链接至各个功能模块。 2. **个人中心**:用户可以管理个人信息、查看收藏笔记、修改密码等。 3. **用户管理**:仅限管理员操作,包括添加新用户、编辑...
这是一个基于Spring Boot技术的学生读书笔记共享系统的源码和数据库项目,主要应用于教育和学习环境,旨在促进学生之间的知识交流和分享。该项目的核心是利用Java语言和Spring Boot框架构建一个高效、稳定且易于维护...
├─补充1:拔高课程(Redis3.0持久化、集群、MySQL5.6优化、Tomcat7优化) │ │ 打开必读.txt │ │ │ ├─课前资料 │ │ ├─MySQL5.6优化 │ │ │ MySql5.6性能优化.docx │ │ │ │ │ ├─Redis集群 │ ...
.zip:这可能是一个包含详细说明或源代码的文档,可能是项目的设计文档或者开发者笔记,用于理解项目结构和功能。 2. ??java?-21-[???????]??SSM???????-??\:这可能是项目根目录,包含了整个项目的所有子文件夹和...