Spring Boot (教程五:响应JSP页面)

来源:互联网 发布:mysql主键生成 编辑:程序博客网 时间:2024/05/29 11:26

GitHub 地址:

https://github.com/asd821300801/Spring-Boot.git


@Controller 注解是用来专门响应页面的,spring-boot 支持多种模版引擎

其中包括:

1、FreeMarker 2、Groovy 3、Thymeleaf (Spring 官网使用这个) 4、Velocity 5、JSP (Spring Boot官方不推荐,STS创建的项目会在src/main/resources 下有个templates 目录,这里就是让我们放模版文件的,然后并没有生成诸如 SpringMVC 中的webapp目录) 


响应JSP页面只需四个步骤:

1:pom加配置,并且把 <packaging>jar</packaging> 改成  <packaging>war</packaging> 2:application.properties配置文件加入JSP支持3:src/main  下创建 webapp/WEN-INF/page/ 文件夹4 : 写controller层,具体跟SpringMVC一样


pom.xml加入支持jsp的依赖

<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>

重点:

<packaging>jar</packaging> 改成  <packaging>war</packaging>


改完之后别忘了 maven update

1



application.properties配置文件加入JSP支持

# 页面默认前缀目录spring.mvc.view.prefix=/WEB-INF/page/# 响应页面默认后缀spring.mvc.view.suffix=.jsp# 自定义属性,可以在Controller中读取application.hello=Hello World!


创建webapp文件夹以及页面

src/main  下创建 webapp/WEN-INF/page/ 文件夹

2


在page页面下创建jsp文件,需要注意的是:jsp放置的目录必须是配置文件里对应的,否则访问不到


这里我创建2个jsp文件


  • index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>index</title></head><body>    当前系统时间:<br />    <font size=3 color=red>Time:${time }</font>    <br />    Message:${message }</body></html>

  • page1.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body> <b>    ${content } </b></body></html>

工程目录

3


写controller层


  • DemoController.java
package com.example.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;/** * Spring Boot  教程 * Controller * 如何响应JSP页面 *  * 1:pom加配置,并且把 <packaging>jar</packaging> 改成  <packaging>war</packaging> * 2:application.properties配置文件加入JSP支持 * 3:src/main  下创建 webapp/WEN-INF/page/ 文件夹 * 4: 写controller层,具体跟SpringMVC一样 *  * 参考:http://blog.csdn.net/catoop/article/details/50501676 *  * @author LingDu * */@Controllerpublic class DemoController {    //从application.properties中读取配置,如取不到默认值为Hello World!    @Value("${application.hello:Hello World!}")    private String hello = "Hello World!";    /**     * 默认页<br />     * @RequestMapping("/") 和 @RequestMapping是有区别的     * 如果不写参数,则为全局默认页,加入输入404页面,也会自动访问到这个页面。     * 如果加了参数“/”,则只认为是根页面。     * @param model     * @return     */    @RequestMapping(value = {"/","/index"})    public String index(Map<String, Object> model){        model.put("time", new Date());        model.put("message", this.hello);        return "index";         }    /**     * 视图绑定     * @return     */    @RequestMapping("/page1")    public ModelAndView page1(){        ModelAndView mav = new ModelAndView("page1");        mav.addObject("content", "1:通过返回ModelAndView对象,将属性值传递给jsp页面");        return mav;         }    /**     * 接收Model对象     * 设置属性值     * 返回String字符串(页面的路径)     * @param model     * @return     */    @RequestMapping("/page2")    public String page2(Model model){        model.addAttribute("content", "2:通过接收Model对象,设置属性的方式传递给jsp页面");        return "page1";     }}

访问

http://localhost:8080/index.action

4


http://localhost:8080/page1

5


http://localhost:8080/page2

6