Controller的使用

xiaoxiao2021-02-27  601

对于只使用@Controller注解控制器,必须配套有模板(如JSP),否则报404错误 而使用@RestController注解则不须配有模板

只使用@Controller注解

须添加模板,此处为如Spring官方的Thyemleaf模板(替代JSP的好东西),添加jar包

目录结构:

模板文件:index.heml

<h1>hello Spring Boot!</h1>

控制器类:

import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; /** * Created by Shusheng Shi on 2017/5/3. */ @Controller public class HelloController { @RequestMapping(value = "/hello", method = RequestMethod.GET) public String say() { return "index"; } }

运行结果

现在流行前后端分离,后端只需要提供rest接口,返回一些json格式给前端,不需要模板,会影响性能

若将控制器类里的方法写成如下所示(即无method属性)

@RequestMapping(value = "/hello") public String say() { return girlProperties.getCupSize(); }

那么使用GET/POST方式访问皆可.不过并不推荐如此写法,毕竟两种方法适合于不同需求

控制器方法

@RequestMapping(value = "/{id}/say", method = RequestMethod.GET) public String say(@PathVariable("id") int id) { return "id: " + id; }

运行结果

控制器方法

@RequestMapping(value = "/say", method = RequestMethod.GET) public String say(@RequestParam("id") int myId) { return "id: " + myId; }

运行结果

设置id默认值

@RequestMapping(value = "/say", method = RequestMethod.GET) public String say(@RequestParam(value = "id", required = false, defaultValue = "0") int myId) { return "id: " + myId; }

运行结果

另替代写法

// @RequestMapping(value = "/say", method = RequestMethod.GET) @GetMapping(value = "/say") 公众号-JavaEdge 认证博客专家 博客专家 慕课网认证作者 腾讯云 最佳作者 1.经历:19届双一流本科,曾在百度、携程、华为等大厂搬金砖2.涉猎领域:Java生态各种中间件原理、框架源码、微服务、中台等架构设计及落地实战,只生产硬核干货!3.开源社区荣誉:阿里云栖社区博客专家、腾讯云+社区2019年度最佳作者、慕课网认证作者、百万流量万粉博客专家,简书优秀创作者兼《程序员》专题管理员4.著作:在牛客网著有《Java源码面试解析指南》,目前已有上千人在学习,已助众多读者成功拿到满意offer~
转载请注明原文地址: https://www.6miu.com/read-297.html

最新回复(0)