Spring boot的Controller类是如何指定HTML页面的

如题,知道@RequestMapping("/")是在服务端启动页面的网址,但是它是如何加载resource中相应的页面,代码中在哪里可以体现出来?小白刚开始学习。

动漫人物
浏览 1532回答 4
4回答

翻翻过去那场雪

创建PageController,编码如下:package org.springboot.sample.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;@Controllerpublic class PageController {// 从 application.properties 中读取配置,如取不到默认值为Hello Shanhy@Value("${application.hell:Hello Shanhy}")private String hello = "Hello Shanhy";/*** 默认页<br/>* @RequestMapping("/") 和 @RequestMapping 是有区别的* 如果不写参数,则为全局默认页,加入输入404页面,也会自动访问到这个页面。* 如果加了参数逗/地,则只认为是根页面。** @return* @author SHANHY* @create 2016年1月5日*/@RequestMapping(value = {"/","/index"})public String index(Map<String, Object> model){// 直接返回字符串,框架默认会去 spring.view.prefix 目录下的 (index拼接spring.view.suffix)页面// 本例为 /WEB-INF/jsp/index.jspmodel.put("time", new Date());model.put("message", this.hello);return "index";}/*** 响应到JSP页面page1** @return* @author SHANHY* @create 2016年1月5日*/@RequestMapping("/page1")public ModelAndView page1(){// 页面位置 /WEB-INF/jsp/page/page.jspModelAndView mav = new ModelAndView("page/page1");mav.addObject("content", hello);return mav;}/*** 响应到JSP页面page1(可以直接使用Model封装内容,直接返回页面字符串)** @return* @author SHANHY* @create 2016年1月5日*/@RequestMapping("/page2")public String page2(Model model){// 页面位置 /WEB-INF/jsp/page/page.jspmodel.addAttribute("content", hello + "(第二种)");return "page/page1";}}123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566pom.xml添加依赖:<dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId><scope>provided</scope></dependency><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId></dependency>123456789上面说了spring-boot 不推荐JSP,想使用JSP需要配置application.properties。添加src/main/resources/application.properties内容:# 页面默认前缀目录spring.mvc.view.prefix=/WEB-INF/jsp/# 响应页面默认后缀spring.mvc.view.suffix=.jsp# 自定义属性,可以在Controller中读取application.hello=Hello Shanhy123456在 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>12345678910111213page1.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>1234567891011要想让spring-boot支持JSP,需要将项目打成war包。我们做最后一点修改,修改pom.xml文件,将 jar 中的 jar 修改为 war然后启动spring-boot服务。&nbsp;

郎朗坤

html静态文件放在static下,用@Controller注解,以下第一种方式成功,第二种方式失败。一、@Controller@RequestMapping("/")public class IndexController {public ModelAndView index() {return new ModelAndView("index");}}二、@Controllerpublic class IndexController {@RequestMapping("/")public ModelAndView index() {return new ModelAndView("index");}}&nbsp;
打开App,查看更多内容
随时随地看视频慕课网APP