SpringBoot之Controller(B)
2017-08-16 11:34
302 查看
@RestController介绍
我们在Controller中使用 @RestController 注解,该注解是spring 4.0引入的。查看源码可知其包含了 @Controller 和 @ResponseBody 注解。 我们可以理解为 @Controller的增强版。专门为响应内容式的 Controller 而设计的,可以直接响应对象为JSON。而 @Controller 用来响应页面
@Controller实现
创建PageControllerpackage cn.wuyang.springboot.controller; import java.util.Date; import java.util.Map; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.ModelAndView; @Controller @RequestMapping(value="/page") public class PageController { // 从 application.properties 中读取配置,如取不到默认值为Hello Shanhy @Value("${application.hello}") private String hello = "Hello wuyang"; /** * 默认页<br/> * @RequestMapping("/") 和 @RequestMapping 是有区别的 * 如果不写参数,则为全局默认页,加入输入404页面,也会自动访问到这个页面。 * 如果加了参数“/”,则只认为是根页面。 * */ @RequestMapping(value = {"/","/index"}) public String index(Map<String, Object> model){ // 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面 // 本例为 /WEB-INF/jsp/index.jsp System.out.println(this.hello); model.put("time", new Date()); model.put("message", this.hello); return "index"; } /** * 响应到JSP页面page1 * */ @RequestMapping("/page1") public ModelAndView page1(){ // 页面位置 /WEB-INF/jsp/page/page.jsp ModelAndView mav = new ModelAndView("page/page1"); mav.addObject("content", hello); return mav; } /** * 响应到JSP页面page1(可以直接使用Model封装内容,直接返回页面字符串) * */ @RequestMapping("/page2") public String page2(Model model){ // 页面位置 /WEB-INF/jsp/page/page.jsp model.addAttribute("content", hello + "(第二种)"); return "page/page1"; } }
pom.xml添加依赖
<!-- 1.添加 --> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <!-- jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> </dependency>
添加src/main/resources/application.properties内容
# 页面默认前缀目录 spring.mvc.view.prefix=/WEB-INF/jsp/ # 响应页面默认后缀 spring.mvc.view.suffix=.jsp # 自定义属性,可以在Controller中读取 application.hello=Hello application wuyang
在 src/main 下面创建 webapp/WEB-INF/jsp 目录用来存放我们的jsp页面
index.jsp
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Spring Boot Sample</title> </head> <body> Time: ${time} <br> Message: ${message} </body> </html>
page/page1.jsp
<%@ page language="java" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Spring Boot Sample</title> </head> <body> <h1>${content }</h1> </body> </html>
启动spring-boot服务
相关文章推荐
- spring boot aop拦截Controller失败
- 【SpringBoot】2小时学会SpringBoot学习笔记(第4章 Controller的使用)
- Spring Boot如何让某个Controller支持跨源请求,以及如何让Controller类某个成员方法支持跨源请求
- 【spring Boot】Spring中@Controller和@RestController之间的区别
- SpringBoot基础教程2-1-2 Controller规范及响应规范
- SpringBoot 统一异常处理--- @ControllerAdvice 使用
- Spring Boot Controller
- SpringBoot实践之---Controller
- springboot(三 单独将controller放一个包下)
- spring-boot restcontroller filter
- Spring Boot的Controller控制层和页面
- Spring boot画面传値给controller
- 关于怎么解决从ajax传入的json参数注入到Controller的接收对象 以及如何在Spring Boot项目使用参数校验
- SpringBoot 中常用注解@Controller/@RestController/@RequestMapping介绍
- springboot使用addViewController减少控制器代码的编写
- Spring Boot的被@SpringBootApplication注解的App.java必须放在所有的RestController的根路径的package下
- springboot集中处理controller层的异常(有关@ControllerAdvice的用法)
- Spring-boot 配置Aop获取controller里的request中的参数以及其返回值
- SpringBoot第2小节:Controller(控制器)的使用
- Spring Boot Junit 测试Controller