您的位置:首页 > 编程语言 > Java开发

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

2017-06-14 23:48 417 查看
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



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/ 文件夹




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


工程目录



写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
*
*/
@Controller
public 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



http://localhost:8080/page1



http://localhost:8080/page2

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring spring-boot jsp