SpringBoot之Controller(B)

来源:互联网 发布:淘宝助理批量导出图片 编辑:程序博客网 时间:2024/06/05 13:36

@RestController介绍

我们在Controller中使用 @RestController 注解,该注解是spring 4.0引入的。查看源码可知其包含了 @Controller 和 @ResponseBody 注解。我们可以理解为 @Controller的增强版。专门为响应内容式的 Controller 而设计的,可以直接响应对象为JSON。而 @Controller 用来响应页面

@Controller实现

创建PageController

package 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服务
这里写图片描述

原创粉丝点击