1. @RequestMapping:

在请求的路径中传递参数:参数作为路径的一部分,可以在路径中直接使用

{paramName}来表示,另一种就是更加传统的表示方式?paramName=paramValue

@RequestMapping(value ="/test/path/{id}",method=RequestMethod.GET)
public String testPath(@PathVariable String id){
System.out.println("路径中的参数:"+id);
return "index";
}
@RequestMapping(value="/test/param?name=jobs",method= RequestMethod.GET)
public String testParam(@RequestParam(name="name") String name){
System.out.println("参数值是:"+name);
return "index";
}

在对应的接受参数分别使用@PathVariable和@RequestParam

@pathVariable可以多次使用,它可以很好的支持int,long,Date数据类型,spring会帮我们自动去转换,转换失败时会抛出TypeMismatchException异常。当然如果这些基本的类型转换不能满足你的需求,spring还有其他可供类型转换的方法,这里不在这篇中讲。

路径中使用正则表达式的表示方法

由于本人对正则不熟悉,在这里就把官方文档中的说明直接拿过来,做个标记,知道有这么一种方式方法:

另一种方式,不解释:

2.@RequestBody

它与HTTP请求中的request body对应

@RequestMapping(path = "/something", method = RequestMethod.PUT)
public void handle(@RequestBody String body, Writer writer) throws IOException {
writer.write(body);
}

3.@ModelAtrribute

包请求中的参数封装成一个对象

@RequestMapping(method = RequestMethod.POST)
public String processSubmit(@ModelAttribute("pet") Pet pet) { do something }

4. Controller中可以作为放回值的类型

我们这里只学习想常用的就可:

ModelAndView:这个似乎是以前最常用的,既有视图又有数据模型

Model:这个只返回数据模型,视图模型和你请求的对应

View:放回视图

Map:数据

List:数据

String:解析成放回视图

void:

5.@RequestParam:

把请求参数绑定到方法参数中。

@RequestMapping("/test/param")
public String testRequestParam(@RequestParam("name") String name){
return "index";
}

表示在请求中有一个参数名为name的参数,通过注解把该参数的值和方法中的参数绑定,这样在方法参数中就可以获取用户的数据。

当然这样写的要注意一点,就是如果没有这个参数name的话系统会报错,解决的办法是:@RequestParam(value="name",required=false),可以使用是否是必传来做。

如果对于传入的参数个数不确定,可以使用Map<Stirng,String>或者MultiValueMap<String,String>来作为方法参数:

//不确定参数个数
@RequestMapping("/test/params")
public String testRequestParam2(@RequestParam Map<String, String> params){
//params中放着所有的参数,一键值对的形式存在
return "index";
}

6.@ResponseBody

该注解通过注解一个方法,使得这个方法的返回值直接写到HTTP响应体中,而不同于放在模型(Model)中。

该注解和@RequestBody相识,相反。

//注解是方法返回值直接放到Http响应的报文体中
@RequestMapping("/test/retunBoyd")
@ResponseBody
public String testResponseBody(){
return "returnBody";
}

 

7.@RestController

如果在你的@Controller注解的类中,方法都使用了@ResponseBody注解,那么你就可以修改该类使用RestController注解,所有方法去除@ResponseBody注解。

简单讲:@RestController = @Controller + @ResponseBody

 

8.@RequestHeader

不解释看图:

9.升级到3.0

设置web.xml配置文件使容器升级到3.0

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"> ... </web-app>

 

 

spring MVC学习(三)的更多相关文章

  1. Spring MVC 学习 -- 创建过程

    Spring MVC 学习 -- 创建过程 Spring MVC我们使用的时候会在web.xml中配置 <servlet> <servlet-name>SpringMVC< ...

  2. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  3. Spring MVC 学习总结(九)——Spring MVC实现RESTful与JSON(Spring MVC为前端提供服务)

    很多时候前端都需要调用后台服务实现交互功能,常见的数据交换格式多是JSON或XML,这里主要讲解Spring MVC为前端提供JSON格式的数据并实现与前台交互.RESTful则是一种软件架构风格.设 ...

  4. Spring MVC 学习总结(一)——MVC概要与环境配置 转载自【张果】博客

    Spring MVC 学习总结(一)--MVC概要与环境配置   目录 一.MVC概要 二.Spring MVC介绍 三.第一个Spring MVC 项目:Hello World 3.1.通过Mave ...

  5. Spring MVC 学习总结(十)——Spring+Spring MVC+MyBatis框架集成(IntelliJ IDEA SSM集成)

    与SSH(Struts/Spring/Hibernate/)一样,Spring+SpringMVC+MyBatis也有一个简称SSM,Spring实现业务对象管理,Spring MVC负责请求的转发和 ...

  6. Spring MVC 学习笔记12 —— SpringMVC+Hibernate开发(1)依赖包搭建

    Spring MVC 学习笔记12 -- SpringMVC+Hibernate开发(1)依赖包搭建 用Hibernate帮助建立SpringMVC与数据库之间的联系,通过配置DAO层,Service ...

  7. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  8. Spring MVC学习总结

    Spring MVC学习总结 Spring MVC学习路(一) 下载配置文件 Spring MVC学习路(二) 设置配置文件 Spring MVC学习路(三) 编写第一个demo Spring MVC ...

  9. 《Spring MVC学习指南》怎么样?答:书名具有很大的欺骗性

    2016年6月21日 最近,因为工作需要,我从网上买了一本<Spring MVC学习指南>,ISBN编号: 978-7-115-38639-7,定价:49.00元.此书是[美]Paul D ...

  10. Spring MVC 学习笔记11 —— 后端返回json格式数据

    Spring MVC 学习笔记11 -- 后端返回json格式数据 我们常常听说json数据,首先,什么是json数据,总结起来,有以下几点: 1. JSON的全称是"JavaScript ...

随机推荐

  1. PHP——动态随机数

    取1-13随机数 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...

  2. git clone 故障 fatal could not create work tree dir

    问题如上图,原因是openWRT目录权限的问题,该目录是新创建的查看目录权限后发现该目录只对root有读写权限,对所有者及其他用户无读写权限.最简单的chmod 777 openWRT即可解决问题.

  3. C++ 匿名对象产生场景

    //匿名对象产生的三种场景 #include<iostream> using namespace std; class Point{ public: Point(int a,int b){ ...

  4. 009杰信-创建购销合同Excel报表系列-2-建立购销合同(增删改查)

    前面一篇文章已经分析好了数据库的表,这篇文章针对购销合同表做一个增删改查. 和之前的表的增删该查类似. 项目结构如下:

  5. 如果可能的话,使用 PC-Lint、LogiScope 等工具进行代码审查

    如果可能的话,使用 PC-Lint.LogiScope 等工具进行代码审查. #include <iostream> #include <algorithm> #include ...

  6. 把本地仓库导入到Github

    1, create a new rep 2, 进入到本地仓库: $ git remote set-url origin URL 3,上传 git push -v ref: https://www.do ...

  7. 转载 HTTPS 之fiddler抓包、jmeter请求

    转载自 http://suixiang0923.github.io/2016/01/12/%E6%B5%85%E8%B0%88HTTPS%E4%BB%A5%E5%8F%8AFiddler%E6%8A% ...

  8. RESTful作用与特性

    最近在项目中要使用rest风格的设计,学习了一下. 知乎网友说的一句话精确的解释了REST: URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作-(https://ww ...

  9. Android API Guides---Bluetooth

    Bluetooth Android平台包含蓝牙网络协议栈,它同意设备以无线方式与其他蓝牙设备进行数据交换的支持.应用程序框架提供了訪问通过Android蓝牙API的蓝牙功能.这些API使应用程序无线方 ...

  10. 编程之美 set 15 高效率地安排见面会

    题目 有 n 个学生分别对 m 个见面会感兴趣, 为了满足所有学生的要求, HR 希望每个学生都能参加自己感兴趣的所有见面会 思路 1. 假设某一个同学同时对k个小组感兴趣, 那么这k个小组两两之间都 ...