Spring MVC之Controller层的常用注解

Spring MVC之Controller层的常用注解

如果介绍有误请评论。

@Controller

通常写在类上

​ 作用:处理页面的HTTP请求

@RestController

通常写在类上

相当于@Controller +@ResponseBody@ResponseBody作用见下文

@RequestMapping

作用:既可以作用在类上,也可以作用在方法上,也可以同时作用在类和方法上,其作用是指明该类或者该方法响应哪个路径下的请求

通常使用这些注解都是Controller后缀加配置Mapping后缀来使用的。以下是**@Controoller+@RequestMapping**的使用。

package com.it.lms.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

/**
 * HelloController控制器类——返回一个String字符串
 * @author CZX
 */
@Controller
@RequestMapping("/")
public class HelloController {

    @RequestMapping(value = {"/login","/","/login.html"})
    public String hello(){
        //调用业务,接受前端参数
        return "login";
    }

    @RequestMapping(value = "/index")
    public String toIndex(){
        return "index";
    }
}

第一个@Controller@RequestMapping("/"),在启动项目之后,访问http://localhost:8080/的页面请求,就会调用hello()方法来处理这个页面请求,这时页面就会显示login所对应的页面。 同理,访问http://localhost:8080/loginhttp://localhost:8080/login.html的页面请求亦是调用hello()方法来处理这个页面请求。

@RequestMapping(value = "/index"),则是你访问http://localhost:8080/index的页面请求,就会调用toIndex()方法来处理这个页面请求,这时页面就会显示index所对应的页面。

注意:本项目的默认端口为8080,访问地址默认为本机,使用@RequestMapping的时候,如果参数仅有value的话,可以省略不写。

使用这些需要先了解请求与处理方法之间的映射关系

页面请求通常是@RequestMapping("/")这些带有Mapping字眼的注解。例如hello()方法所对应的页面请求就有三个。


@ResponseBody

返回json字符串数据

@RequestMapping("/id")
    @ResponseBody
    public HashMap<String,String> toList(){
        HashMap<String,String> lists;
        lists = new HashMap<>();
        lists.put("code","1232");
        lists.put("status","1");
        return lists;
    }

访问http://localhost:8080/id,会看到如下页面

Spring MVC之Controller层的常用注解_第1张图片

@GetMapping和@PostMapping的区别

@GetMapping是一个组合注解,是**@RequestMapping(method = RequestMethod.GET)**的缩写

@PostMapping也是一个组合注解,是**@RequestMapping(method = RequestMethod.POST)**的缩写

	@RequestMapping(value = "/register")
    public String toRegister(){
        return "register";
    }
    @RequestMapping(value = "/register1")
    public String toRegister1(){
        return "register1";
    }
    @GetMapping("toRegister1")
    public String Register1( String username,
                        String password){

        return "index";
    }

    @PostMapping("toRegister")
    public String register(@RequestParam String username,
                           @RequestParam String password){

        return "index";
    }

在浏览器分别访问http://localhost:8080/register1http://localhost:8080/register输入123,33,点击注册跳转到的页面的url分别是

http://localhost:8080/toRegister1?username=123&password=33http://localhost:8080/toRegister

这两个注解的不同就是提交方式的不同,从而导致跳转的url不同

项目源码地址:gitee项目源码
资源链接:项目源码

你可能感兴趣的:(spring,mvc,java)