spring4.3新注解之:@RequestMapping变种(@GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PatchMapping)
Spring 4.3 中引进了下面的注解 @RequestMapping 在方法层级的变种,来帮助简化常用 HTTP 方法的映射,并更好地表达被注解的方法的语义。比如,@GetMapping可以读作 GET @RequestMapping。
@GetMapping
@PostMapping
@PutMapping
@DeleteMapping
@PatchMapping
下面是一个示例:
1)编写 JSP 页面
首先在上一篇中的项目中的 helloWorld.jsp 中追加下面的代码
<hr>
<h2>Composed RequestMapping</h2>
<a href="composed/get">Test1</a>
<br>
<a href="composed/2016-09-05">Test2</a>
<br>
<!-- 一个以 POST 方式提交的表单 -->
<form action="composed/post" method="post">
Username:<input type="text" name="username" placeholder="用户名..."><br>
Password:<input type="password" name="password" placeholder="用户名..."><br>
<button type="submit">登录</button>
</form>
2)定义一个控制器
在代码中,添加下面的控制器:
package com.techmap.examples.controllers; import java.text.SimpleDateFormat;
import java.util.Date; import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.format.annotation.DateTimeFormat.ISO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam; /**
* 组合的 @RequestMapping。
*/
@Controller
@RequestMapping("/composed")
public class ComposedController
{ @GetMapping("/get")
public String get()
{
return "/examples/targets/test1";
} /**
* 带有 URI 模板
*/
@GetMapping(path = "/{day}")
public String getForDay(@PathVariable @DateTimeFormat(iso = ISO.DATE) Date day, Model model)
{
System.out.println("--> " + new SimpleDateFormat("yyyy-MM-dd").format(day)); return "/examples/targets/test2";
} @PostMapping("/post")
public String post(
@RequestParam(value="username") String user,
@RequestParam(value="password") String pass
)
{
System.out.println("--> Username: " + user);
System.out.println("--> Password: " + pass); return "/examples/targets/test3";
}
}
3)测试
点击 Composed RequestMapping 下面的 test1 和 test2 超链接,会正常进行页面跳转。输入用户名和密码,并点击“登录”按钮后,也会进行跳转,但是控制台会像下面那样打印出输入的用户名密码(我输入的用户名和密码都是inspector):
......
DEBUG 2016-09-07 08:31:24,923 Returning cached instance of singleton bean 'composedController' (AbstractBeanFactory.java:249)
--> Username: inspector
--> Password: inspector
DEBUG 2016-09-07 ......
spring4.3新注解之:@RequestMapping变种(@GetMapping,@PostMapping,@PutMapping,@DeleteMapping,@PatchMapping)的更多相关文章
- @Controller 文件相关 @RequestMapping @PostMapping @PutMapping @DeleteMapping @PatchMapping
https://blog.csdn.net/magi1201/article/details/82226289(copy) 最近学习看一些代码,发现对于发送请求这件事,有的地方用@RequestMap ...
- @RequestMapping 和 @GetMapping @PostMapping 区别
@RequestMapping 和 @GetMapping @PostMapping 区别 @GetMapping是一个组合注解,是@RequestMapping(method = Requ ...
- Spring4.1新特性——Spring MVC增强
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...
- Spring4 MVC HelloWorld 注解和JavaConfig实例
在这一节中,我们以 Spring4 MVC HelloWorld 注释/JavaConfig为示例,一步一步以简单的方式学习Spring4 MVC 的注解,项目设置,代码,部署和运行. 在先前的 Sp ...
- Spring4.1新特性——Spring缓存框架增强(转)
目录 Spring4.1新特性——综述 Spring4.1新特性——Spring核心部分及其他 Spring4.1新特性——Spring缓存框架增强 Spring4.1新特性——异步调用和事件机制的异 ...
- Spring3.2新注解@ControllerAdvice
Spring3.2新注解@ControllerAdvice @ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强.让我们先看看@Control ...
- Spring框架入门之Spring4.0新特性——泛型注入
Spring框架入门之Spring4.0新特性——泛型注入 一.为了更加快捷的开发,为了更少的配置,特别是针对 Web 环境的开发,从 Spring 4.0 之后,Spring 引入了 泛型依赖注入. ...
- Spring系列之新注解配置+Spring集成junit+注解注入
Spring系列之注解配置 Spring是轻代码而重配置的框架,配置比较繁重,影响开发效率,所以注解开发是一种趋势,注解代替xml配置文件可以简化配置,提高开发效率 你本来要写一段很长的代码来构造一个 ...
- 理解Spring4.0新特性@RestController注解
参考原文 @RestController注解是它继承自@Controller注解.4.0之前的版本,spring MVC的组件都使用@Controller来标识当前类是一个控制器servlet. 使用 ...
随机推荐
- 实验吧—隐写术——WP之 Fair-Play
首先,我们读题发现题目是Playfair,其实我也不知道这是什么,那么就百度一下啊 Playfair解密算法: 首先将密钥填写在一个5*5的矩阵中(去Q留Z),矩阵中其它未用到的字母按顺序填在矩阵剩 ...
- gcd(1,n)+gcd(2,n)....gcd(n-1,n); Uva11426
#include<bits/stdc++.h> #define int long long using namespace std; ; int phi[maxn]; int prime[ ...
- AC自动机自我理解和模板
给出长度为m的文本 查询 n个单词出现的次数 用kmp 复杂度 n*m*(单词平均长度) 用字典树 复杂度 m*每次字典树遍历的平均深度) AC自动机 复杂度 m (思路可以理解为kmp+字典树 ) ...
- Go Example--接口
package main import ( "math" "fmt" ) type geometry interface { area() float64 pe ...
- 每天进步一点点- 资源与URI(吐血精华总结)
1.资源(Resources) 每一个URI代表一种资源这句话的理解 ***************************************************************** ...
- openresty 集成 keycloak-oauth-oidc
keycloak 是一个比较全,而且比较方便的sso 解决方案,同时为我们提供了灵活的扩展特性 备注: 测试使用docker-compose 运行,对于keycloak 使用pg 数据库做为后端存储 ...
- About the test in development
Unit test: Specify and test one point of the contract of single method of a class. This should have ...
- The key of real time embedded system
对于实时嵌入式系统来说,最重要的是每一个进程所需时间的可检测性,可预测性.要不你的实时性是没有办法保证的.有些时候你对一些没有从事过嵌入式开发的人谈这个进程(TASK)设计是按8ms被调度一次,他们会 ...
- keydown,keypress,keyup三者之间的区别
最近看了Javascript高级教程中对过滤输入的介绍,想实现比如电话号码中不能包好非数值的字符,而相应文本中插入字符的操作是keypress事件,所以就想通过阻止这个事件的默认事件行为来阻止这个事件 ...
- Zabbix-2.4-安装-3
zabbix自动注册简单介绍---创建自动注册的actions 怎么把1000台机器加zabbix里 zabbix提供了网络发现和自动注册2个功能,发现有机器连过来,给它加个模板 如果是win ...