引言:
最近复习了SpringMVC开发的相关基础知识,现在对开发过程中经常用到的注解做下总结:
@RequestMapping注解
@RequestMapping 是SpingMVC中最常用的注解,其作用和属性为
a.作用:主要用于处理请求的地址映射。可用于类和方法,用于类时表示所有响应请求的方法都以该地址作为父路径。
b.属性:
1、path与value:两个属性作用一样,都是用于设置访问的URL。
2、method:用于设置请求的方法如:method={RequestMethod.GET} 。
3、params: 用于指定限制请求的参数的条件,支持简单的表达式,要求请求参数的key与value必须与配置的一样。
4、headers:用于指定限制请求的消息头条件。
实例代码:
控制器类HelloController.java的主要实现代码
/**
* 控制器类
*/
@Controller
@RequestMapping(path = "/helloController")
public class HelloController {
/**
* 入门案例
* @return
*/
@RequestMapping(path = "/hello")
public String sayHello(){
System.out.println("Hello word!!");
return "success";
}
/**
* 注解@RequestMapping使用实例
* @return
*/
@RequestMapping(path = "/requestMapping",method = {RequestMethod.GET},params = {"name"})
public String requestMapping(){
System.out.println("测试注解@RequestMapping的使用。。。");
return "success";
}
}
视图页面index.jsp主要代码
<a href="helloController/hello">入门程序</a>
<br/>
<a href="helloController/requestMapping?name=test">RequestMapping</a>
<br/>
<a href="params/testParams?name=pankx&age=18">请求参数绑定(即获取请求参数的值)</a>
@RequestParam注解
a.作用:把请求中指定名称的参数给控制器方法中的参数赋值。
b.属性:
1、name与value:请求参数中的名称。
2、required:用于设置请求参数中是否必须提供此参数,默认值为:true,表示必须提供,如不提供则报错。
实例代码:
控制器类RequestParamDemo.java的主要实现代码
@Controller
@RequestMapping("/RequestParam")
public class RequestParamDemo {
/**
* @RequestParam注解实例
* @param username
* @return
*/
@RequestMapping("/param")
public String requestParam(@RequestParam(name="name") String username){
System.out.println("requestParam执行。。。。");
System.out.println("username:"+username);
return "success";
}
}
视图页面requestparam.jsp主要代码
<a href="RequestParam/param?name=test&age=19">RequestParam注解实例</a>
@RequestBody注解
a.作用:用于获取请求体的内容,直接使用获取得的是key1=value1&key2=value2…结构的数据,get请求不适用。
b.属性:
required:用于设置是否必须有请求体,默认为true。get方式请求会报错,如果取值为false,则get方式请求不报错,但取得的值为null。
实例代码:
控制器类RequestBodyTest.java的主要实现代码
@Controller
@RequestMapping("/requestbody")
public class RequestBodyTest {
/**
* 注解@RequestBody实例
* @param body
* @return
*/
@RequestMapping("/requestBodyDemo")
public String requestBodyDemo(@RequestBody String body){
System.out.println("requestBodyDemo执行。。。");
System.out.println(body);
return "success";
}
视图页面requestbodydemo.jsp主要代码
<body>
<form action="requestbody/requestBodyDemo" method="post">
姓名:<input type="text" name="name"/><br/>
年龄:<input type="text" name="age"/><br/>
<input type="submit" value="提交"/>
</form>
</body>
@PathVarible注解
a.作用:用于绑定url中的占位符,即获取占位符中的值,并传给控制器方法的参数。如:/demo/{id},{id}即url的占位符。
1、name与value:两个属性功能一样,都是用于指定url中的占位符的名称。
2、required:用于设置是否必须提供占位符。
实例代码:
控制器类PathVaribleTest.java的主要实现代码
@Controller
@RequestMapping("/PathVarible")
public class PathVaribleTest {
/**
* 注解@PathVarible实例
* @param id
* @return
*/
@RequestMapping("/pathvaribletest/{id}")
public String pathVaribleTest(@PathVariable("id") String id){
System.out.println("pathVaribleTest执行。。。。。");
System.out.println("id="+id);
return "success";
}
视图页面pathVaribleDemo.jsp主要代码
<body>
<a href="PathVarible/pathvaribletest/2020">注解@PathVarible实例</a>
</body>
@CookieValue注解
a.作用:用于获取请求中指定的cookie值,并传给控制器方法的参数。
1、name与value:两个属性功能一样,都是用于指定cookie的名称。
2、required:用于设置是否必须有此cookie。
实例代码:
控制器类CookieValueTest.java的主要实现代码
@Controller
@RequestMapping("/Cookie")
public class CookieValueTest {
/**
* 注解@CookieValue实例
* @return
*/
@RequestMapping("/cookieValueTest")
public String cookieValueTest(@CookieValue("JSESSIONID") String cookie){
System.out.println("cookieValueTest执行。。。。");
System.out.println("cookie="+cookie);
return "success";
}
视图页面cookieValueDemo.jsp主要代码
<body>
<a href="Cookie/cookieValueTest">注解@CookieValue实例</a>
</body>
详细代码点此
SpringMVC还有很多常用的注解,先写这些等以后用到再做总结。
关注我的公众号