SpringMVC Annotation

发布时间 2023-06-14 07:05:32作者: ming1010

@RequestMapping

1.RequestMapping path,请求映射的路径

1 @Controller
2 public class HelloController {
3     @RequestMapping("/hello")
4     public String sayHello(){
5         System.out.println("进入到Springmvc中controller层的一个方法中来了");
6         return "success";
7     }
8 }

不同路径指向同一个页面(login、register、updatepwd、addUser,登录成功都指向success.jsp)

 1 @Controller
 2 public class UserController {
 3     @RequestMapping(value = "/user/login")
 4     public  String userLogin(){
 5         String username = "Ming";
 6         String pwd = "123456";
 7         if("Ming".equals(username)&&"123456".equals(pwd)){
 8             return "success";
 9 
10         }else {
11             return "error";
12         }
13     }
14     @RequestMapping(value = "/user/register")
15     public String userRegister(){
16         System.out.println("register,注册");
17         return "success";
18     }
19     @RequestMapping(value = "/user/updatePwd")
20     public String updateUserPwd(){
21         System.out.println("update user pwd");
22         return "success";
23     }
24     @RequestMapping(value = "/user/addUser")
25     public String addUser(){
26         System.out.println("add user.");
27         return "success";
28     }
29 
30 }

 

2.RequestMapping parameters,请求映射参数

value数组中是或的关系,params数组中是和的关系

URL:http://localhost:8080/rmpp/test01?param1&username=ming

1 @Controller
2 public class RequestMappingParamsPropController {
3     @RequestMapping(value = {"/rmpp/test01", "rmpp/test001"},params = {"param1","username=ming"})
4     public String test01(){
5         System.out.println("test01");
6         return "success";
7     }//http://localhost:8080/rmpp/test01?param1&username=ming
8 }

3.RequestMapping method,请求映射方法类型(GET/POST)

method数组中的请求方法是或的关系,需要在postman里发起post请求。

1 @Controller
2 public class RequestMappingMethodController {
3     @RequestMapping(value = "/rmm/test01",method = {RequestMethod.GET, RequestMethod.POST})
4     public String test01(){
5         System.out.println("test01");
6         return "success";
7     }
8 }

4.RequestMapping headers,请求的头部,在postman中增加headers属性。

1 @Controller
2 public class RequestMappingHeaderPropController  {
3     @RequestMapping(value = "/rmhp/test01", headers = {"username=ming"})
4     public String test01(){
5         System.out.println("test01");
6         return "success";
7     }
8 }

 

5.请求风格——Ant

?:匹配文件名中的一个字符

*:匹配文件名中的任意字符

**:匹配多层路径

 1 @Controller
 2 public class RequestMappingAntController {
 3     //http://localhost:8080/anttest01
 4     //http://localhost:8080/anttest11
 5     //http://localhost:8080/anttest21
 6     //http://localhost:8080/anttestA1
 7     //http://localhost:8080/anttesta1
 8     //http://localhost:8080/anttestb1
 9 
10     @RequestMapping(value ="/ant/test?1")
11     public String test01(){
12         System.out.println("ant-test01");
13         return "success";
14     }
15     //http://localhost:8080/anttest661
16     //http://localhost:8080/anttestAA1
17     //http://localhost:8080/ant/testAllllllllllllllllllA1
18     @RequestMapping(value ="/ant2/test*1")
19     public String test02(){
20         System.out.println("ant-test02");
21         return "success";
22     }
23     //http://localhost:8080/ant3/a/b/123/c/d
24     //http://localhost:8080/ant3/a/b/aabbcc/c/d
25     //http://localhost:8080/ant3/a/b/1/2/3/c/d
26     @RequestMapping(value ="/ant3/a/b/**/c/d")
27     public String test03(){
28         System.out.println("ant-test03");
29         return "success";
30     }
31 }

6.请求风格——RESTful(@PathVariable)

placeholder:{username}

@PathVariable("username")

通过请求地址进行数据传输

URL:http://localhost:8080/user/login/ming/123456

 1 @Controller
 2 public class RequestMappingRestfulController {
 3     @RequestMapping("/user/login/{username}/{password}")
 4     public String userLogin(@PathVariable("username")String username,
 5                             @PathVariable("password") String password){
 6 
 7         System.out.println("username="+username);
 8         System.out.println("password="+ password);
 9         System.out.println("user log in");
10         return "success";
11     }//http://localhost:8080/user/login/ming/123456
12 
13 }

7.RequestMapping(@RequestParam)

?:是通过表单进行参数传递

@RequestParam将form中的参数传递到方法中

 1 <div>
 2     <form action="/add/user" method="post">
 3         <table>
 4             <tr>
 5                 <td>No.</td>
 6                 <td>
 7                     <input type="text" placeholder="please input no." name="uno"/>
 8                 </td>
 9             </tr>
10             <tr>
11                 <td>Name</td>
12                 <td>
13                     <input type="text" placeholder="please input name" name="uname"/>
14                 </td>
15             </tr>
16         </table>
17         <button type="submit">submit</button>
18     </form>
19 </div>

@RequestParam("uno")和@RequestParam("uname")中请求参数名需要与表单中的name="uno"和name="uname"名称一致

 1 @Controller
 2 public class UserAddController {
 3     @RequestMapping("/add/user")
 4     public String addUser(@RequestParam("uno") String uno,
 5                           @RequestParam("uname") String uname,
 6                           @RequestHeader("Host") String host){
 7         System.out.println("uno=" + uno);
 8         System.out.println("uname=" + uname);
 9         System.out.println("host=" +host);
10         return "success";
11 
12     }

@RequestParam,默认为“1”和“5”(String类型),分页。

 1  @RequestMapping("/user/page")
 2     public String userPage(@RequestParam(value = "pageNum",required = false, defaultValue = "1") Integer pageNum,
 3                            @RequestParam(value = "pageSize",required = false, defaultValue = "5") Integer pageSize){
 4         System.out.println("pageNum=" +pageNum);
 5         System.out.println("pageSize=" + pageSize);
 6         return "success";
 7         //http://localhost:8080/user/page
 8         //http://localhost:8080/user/page?pageNum/pageSize
 9         //http://localhost:8080/user/page?pageNum=6
10         //http://localhost:8080/user/page?pageSize=6
11         //http://localhost:8080/user/page?pageNum=6&pageSize=6
12         //http://localhost:8080/user/page?pageSize=6&pageNum=6
13     }

8.@RequestHeader,获取request headers中的属性值,像“Host”,"Connection"...

 1 @Controller
 2 public class UserAddController {
 3     @RequestMapping("/add/user")
 4     public String addUser(@RequestParam("uno") String uno,
 5                           @RequestParam("uname") String uname,
 6                           @RequestHeader("Host") String host){
 7         System.out.println("uno=" + uno);
 8         System.out.println("uname=" + uname);
 9         System.out.println("host=" +host);
10         return "success";
11 
12     }