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. 70个shell经常使用操作

    1) 怎样向脚本传递參数 ? ./script argument 样例: 显示文件名脚本 ./show.sh file1.txt cat show.sh #!/bin/bash echo $1 2) ...

  2. OSX活动监视器关闭spotlight 、mds_stores等进程

    如果是机械盘,spotlight .mds_stores严重影响使用体验 今天早上一开机,设备速度慢的受不了,随便打开一个应用都几分钟.通过top查看,CPU剩余90%以上.所以并不是CPU不足导致. ...

  3. 同过增强Connection类[重写了close的方法]实现的从连接池取出连接并放回连接的简单的实现流程

    package tk.dong.connection.util; import java.io.IOException;import java.io.InputStream;import java.i ...

  4. 在后台运行Python脚本服务

    在服务器,程序都是后台运行的,当写的python脚本时,需要:   你要是想python robot.py & 是不行的,一旦用户登出,脚本就自动退出了.用at, cron也可以实现不过我发现 ...

  5. dp + 状态压缩 - Codeforces 580D Kefa and Dishes

    Kefa and Dishes Problem's Link Mean: 菜单上有n道菜,需要点m道.每道菜的美味值为ai. 有k个规则,每个规则:在吃完第xi道菜后接着吃yi可以多获得vi的美味值. ...

  6. IOC控制反转

    IOC是Inversion of Control的缩写,多数书籍翻译成“控制反转”,还有些书籍翻译成为“控制反向”或者“控制倒置”.     1996年,Michael Mattson在一篇有关探讨面 ...

  7. 使用Javascript实现随机字符串

    方法一(其实是毫秒时间数字字符串): function randomString() { return '' + new Date().getTime(); } 方法二(随机字母数字字符串): var ...

  8. 003很好的网络博客(TCP/IP)-很全

    http://www.cnblogs.com/obama/p/3292335.html 很全的计算机网络方面的资料.

  9. SSM,即Spring+SpringMVC+MyBatis三个开源框架的整合框架集。

    SSM(Spring+SpringMVC+MyBatis)框架集由Spring.SpringMVC.MyBatis三个开源框架整合而成,常作为数据源较简单的web项目的框架. 其中spring是一个轻 ...

  10. (转)directx中丢失的设备(lost device)

      directx中丢失的设备(lost device) 丢失的设备 一个Microsoft? Direct3D?可以处于操作状态或丢失状态.操作状态是设备的正常状态,设备按预期运行并present所 ...