zoukankan      html  css  js  c++  java
  • SpringBoot学习之@Controller和@RestController

    今天我们来研究一下@Controller和@RestController的用法

    @Controller

    1.Controller可以用来跳转页面,并且必须配合模板来使用。

    @Controller
    //@ResponseBody
    public class LoginController {
    
        @RequestMapping(value = "/login", method=RequestMethod.GET)
        public String login() {
            return "hello world!!";
        }
    }

    上面的代码如果直接在浏览器地址栏中输入:http://localhost:8080/login会出现下面得错误:

    出现这种情况的原因在于没有使用模版。即@Controller 用来响应页面,@Controller必须配合模版来使用。

    SpringBoot支持多种模板包括:

    1.FreeMarker

    2.Groovy

    3.Thymeleaf (Spring 官网使用这个)

    4.Velocity

    5.JSP (貌似Spring Boot官方不推荐,创建项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如                                         SpringMVC 中的webapp目录)

    @RestController

    @RestController注解相当于@ResponseBody + @Controller合在一起的作用。

    如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。在@Restcontroller中,返回的应该是一个对象,即return一个user对象,这时,在没有页面的情况下,也能看到返回的是一个user对象对应的json字符串,而前端的作用是利用返回的json进行解析渲染页面,java后端的代码比较自由。

  • 相关阅读:
    (九)MySQL数据库
    (八)其他组件(redis、zk、dubbo、MQ、ES)
    (七)Spring体系
    (六)JVM虚拟机
    (五)并发编程与锁机制
    (四)常用集合与原理
    (三)JDK版本区别
    k8s scheduler framework 配置weight不生效的问题
    Elasticsearch ILM delete not working
    etcd 依赖采坑
  • 原文地址:https://www.cnblogs.com/michaelShao/p/8952158.html
Copyright © 2011-2022 走看看