3.学习SpringMVC注解深入
一.SpringMVC注解:
1.RequestParam注解:


其中required属性默认为true(必须得传而且传的名字一样),为false时可以不传。
编写jsp代码:

<a href="/anno/testRequestParam?name=哈哈">RequestParam</a>
编写AnnoController.java的方法:
/**
* RequestParam 页面的请求参数与接收参数不同
* @param username
* @return
*/
@RequestMapping("/testRequestParam")
public String testRequestParam(@RequestParam(name = "name") String username){ System.out.println("执行了...");
System.out.println(username); return "success";
}
2.RequestBody

编写jsp代码:

<%--对于传输json数据时,获得请求体很重要,对于get请求是没有请求体的--%>
<form action="/anno/testRequestBody" method="post">
用户的姓名:<input type="text" name="username"><br>
用户年龄:<input type="text" name="age"><br>
<input type="submit" value="提交">
</form>

/**
* RequestBody 获取到请求体的内容
* @param body
* @return
*/
@RequestMapping("/testRequestBody")
public String testRequestBody(@RequestBody String body){ System.out.println("执行了...");
System.out.println(body); return "success";
}
3.PathVariable


编写jsp代码:

<a href="/anno/testPathVariable/10">PathVariable</a>
编写方法:

/**
*PathVariable 绑定url中的占位符,使用restful的风格的URL(同样的URL但是不同的请求方式和占位符)
* @param id
* @return
*/
@RequestMapping("/testPathVariable/{sid}")
public String testPathVariable(@PathVariable(name = "sid") String id){ System.out.println("执行了...");
System.out.println(id); return "success";
}
4.RequestHeader

编写jsp:

<a href="/anno/testRequestHeader">RequestHeader</a>
编写方法:

/**
* RequestHeader 获取请求头信息
* @param header
* @return
*/
@RequestMapping("/testRequestHeader")
public String testRequestHeader(@RequestHeader(value = "Accept") String header){ System.out.println("执行了...");
System.out.println(header); return "success";
}
5.CookieValue

jsp:

<a href="/anno/testCookieValue">CookieValue</a>
编写方法:

/**
* CookieValue 获取到Cookie的值
* @param cookieValue
* @return
*/
@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue(value = "JSESSIONID") String cookieValue){ System.out.println("执行了...");
System.out.println(cookieValue); return "success";
}
6.ModelAttribute:



jsp:

<form action="/anno/testModelAttribute1" method="post">
用户的姓名:<input type="text" name="username"><br>
用户年龄:<input type="text" name="age"><br>
<input type="submit" value="提交">
</form>
- 又返回值的方法:返回给后执行的方法当形参

/**
* ModelAttribute 测试有返回值的方法
* @param user
* @return
*/
@RequestMapping("/testModelAttribute1")
public String testModelAttribute1(User user){ System.out.println("testModelAttribute1执行了...");
System.out.println(user); return "success";
} /**
* ModelAttribute 该方法会先于其他方法执行,目的是可以获取数据后先一步查询后操作数据库等
* @param uname
* @return
*/
@ModelAttribute
public User showUser1(String uname){ System.out.println("showUser1执行了..."); //先获得提交的数据进行处理然后传给请求的控制器再进行处理
User user = new User();
user.setUname(uname);
user.setAge(20);
user.setDate(new Date());
return user;
}
- 无返回值:

/**
* ModelAttribute 测试无返回值的方法
* @param user
* @return
*/
@RequestMapping("/testModelAttribute2")
public String testModelAttribute2(@ModelAttribute(value = "abc") User user){ System.out.println("testModelAttribute2执行了...");
System.out.println(user); return "success";
} /**
* ModelAttribute 该方法会先于其他方法执行,目的是可以获取数据后先一步查询后操作数据库等
* @param username
* @param map
*/
@ModelAttribute
public void showUser2(String username, Map<String,User> map){ System.out.println("showUser2执行了..."); //先获得提交的数据进行处理然后传给请求的控制器再进行处理
User user = new User();
user.setUname(username);
user.setAge(20);
user.setDate(new Date()); map.put("abc",user);
}
7.SessionAttribute


jsp:

<a href="/anno/testSessionAttributes">向Session中存入值</a>
<a href="/anno/getSessionAttributes">取出session域值</a>
<a href="/anno/delSessionAttributes">删除session域值</a>
然后开启EL表达式:

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<body>
入门成功
${requestScope.msg} ${sessionScope} </body>
方法:


/**
* SessionAttributes注解
* @param model
* @return
*/
@RequestMapping("/testSessionAttributes")
public String testSessionAttributes(Model model){ System.out.println("testSessionAttributes..."); //底层会存储到request域对象中
model.addAttribute("msg","美美"); return "success";
} /**
* getSessionAttributes 获取Session域
* @param modelMap
* @return
*/
@RequestMapping("/getSessionAttributes")
public String getSessionAttributes(ModelMap modelMap){ System.out.println("getSessionAttributes..."); String msg = (String) modelMap.get("msg");
System.out.println(msg);
return "success";
} /**
* delSessionAttributes 删除session域中值
* @param status
* @return
*/
@RequestMapping("/delSessionAttributes")
public String delSessionAttributes(SessionStatus status){ System.out.println("delSessionAttributes..."); status.setComplete();
return "success";
}
学习完毕!

3.学习SpringMVC注解深入的更多相关文章
- 2.学习SpringMVC注解入门篇
一.SpringMVC执行流程 . 二.创建项目学习SpringMVC注解 按照我之前的SpringMVC创建项目,首先创建一个项目springmvc01,配置好pom.xml,web.xml,spr ...
- Java 系列之spring学习--springmvc注解方式(五)
一.springmvc注解方式 注解方式使用的更多,更加灵活.在上一篇的博客的基础上修改springmvc-servlet.xml配置文件. <?xml version="1.0&qu ...
- Java 系列之spring学习--springmvc注解参数传递(六)
一.绑定参数注解如下 @RequestParam 绑定单个请求数据,既可以是URL中的参数,也可以是表单提交的参数或上传的文件. 它有三个属性: value 用于设置参数名. defa ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十六)——SpringMVC注解开发(高级篇)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——S ...
- springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定
springmvc学习笔记(13)-springmvc注解开发之集合类型參数绑定 标签: springmvc springmvc学习笔记13-springmvc注解开发之集合类型參数绑定 数组绑定 需 ...
- springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定
springmvc学习笔记(12)-springmvc注解开发之包装类型參数绑定 标签: springmvc springmvc学习笔记12-springmvc注解开发之包装类型參数绑定 需求 实现方 ...
- springmvc学习笔记(10)-springmvc注解开发之商品改动功能
springmvc学习笔记(10)-springmvc注解开发之商品改动功能 标签: springmvc springmvc学习笔记10-springmvc注解开发之商品改动功能 需求 开发mappe ...
- SpringMVC注解汇总(一)-定义
本文根据开涛哥学习SpringMVC汇总而成,方便更好查阅! 网址:http://jinnianshilongnian.iteye.com/blog/1752171 注解式控制器简介 @Control ...
- 学习SpringMVC——如何获取请求参数
@RequestParam,你一定见过:@PathVariable,你肯定也知道:@QueryParam,你怎么会不晓得?!还有你熟悉的他(@CookieValue)!她(@ModelAndView) ...
随机推荐
- BZOJ3145 [Feyat cup 1.5]Str 后缀树、启发式合并
传送门--BZOJCH 考虑两种情况: 1.答案由一个最长公共子串+可能的一个模糊匹配位置组成.这个用SAM求一下最长公共子串,但是需要注意只出现在\(S\)的开头和\(T\)的结尾的子串是不能够通过 ...
- Java学习:运算符的使用与注意事项
运算符的使用与注意事项 四则运算当中的加号“+”有常见的三种用法: 对于数值来,那就是加法. 对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算.char类型字符,和int类 ...
- 绝对有效 IntelliJ IDEA2019.2下载、安装及破解教程
原文链接:https://blog.csdn.net/weixin_43904316/article/details/88881238 https://bl ...
- 整理下log4net日志
今天整理了下log4net日志,记录一下... 日志是一个系统排错的重要组成,有在之前的.NET中,微软还没有提供过像样的日志框架,目前能用的一些框架比如Log4Net.NLog.CommonLogg ...
- 调用WebApi出现 远程服务器返回错误: (500) 内部服务器错误
一.检查错误错误 将 HttpWebResponse response = (HttpWebResponse)request.GetResponse();改为 HttpWebResponse resp ...
- .Net Core WebAPI开启静态页,设置主页
1.使用场景 默认创建的.Net Core WebAPI应用在运行时是没有页面显示的,效果如下: 那么,如果想要给API设置一个主页,应该怎么做呢?这就需要用到本文提供的方法. 2.设置方法 (1)首 ...
- 如何在ppt全屏演示时仍然显示任务栏?
相信做过ppt演讲的人会有这样的体会:有的时候希望全屏ppt时不要直接霸占全部的屏幕,至少希望能够看到任务栏,这样就可以仍然方便切换程序. 如何实现呢? 很简单,看下图吧:) https://www. ...
- win7 VirtualBox E_FAIL (0x80004005)解决
环境:win7virtualbox 6.0.10 安装virtualbox6.0.10之后,新建一个centos虚拟机,提示启动任务失败 报错信息:返回代码: E_FAIL (0x80004005)组 ...
- 使用Nginx 对Laravel 进行负载
项目环境php7.2, nginx , Laravel,开发的微信公众号应用 .目前访问量的上升,单台服务器不能满足需求,于是用nginx做了负载.以下是一种可行性方案,目前正在使用. session ...
- Java String 字符串
equals 字符串比较 String str = "furong"; String str1 = new String("furong"); System.o ...