欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SpringBoot使用Jsp的示例代码

程序员文章站 2024-02-22 22:00:34
本文是简单总结一下springboot使用jsp的demo。 前言 在早期做项目的时候,jsp是我们经常使用的java服务器页面,其实就是一个简化servlet的设...

本文是简单总结一下springboot使用jsp的demo。

前言

在早期做项目的时候,jsp是我们经常使用的java服务器页面,其实就是一个简化servlet的设计,在本文开始之前,回顾一下jsp的几大对象,如图。

SpringBoot使用Jsp的示例代码

而在现在springboot框架流行的时代,springboot推荐的模版引擎也转变为了thymeleaf,本文来介绍一下springboot使用jsp页面。

使用springboot搭建的maven web工程,模板引擎是jsp,(工程目录照着之前springmvc的配置,jsp文件放在根目录的webapp文件夹下,同时在application.properties下配置视图的前缀和后缀),此时,如果项目的打包形式是war(war需要在web容器下运行),打包后可以正常在容器内运行。

而如果打包形式是jar(jar可以直接部署),打包后无法访问工程文件里面的静态视图文件。虽然有方法可以解决此问题,但还是从根本角度出发,springboot不支持jsp这种模板引擎,还是使用官方推荐的thymeleaf等模板引擎,同时在resource目录下配置静态资源视图文件,而不采用springmvc的webapp那种工程目录结构。

新建项目

创建一个项目springboot_jsp,pom文件中加入tomcat-embed-jasper依赖以及jstl标签库的依赖,完整pom代码如下:

<?xml version="1.0" encoding="utf-8"?>
<project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance"
     xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelversion>4.0.0</modelversion>

  <groupid>com.dalaoyang</groupid>
  <artifactid>springboot_jsp</artifactid>
  <version>0.0.1-snapshot</version>
  <packaging>war</packaging>

  <name>springboot_jsp</name>
  <description>springboot_jsp</description>

  <parent>
    <groupid>org.springframework.boot</groupid>
    <artifactid>spring-boot-starter-parent</artifactid>
    <version>1.5.9.release</version>
    <relativepath/> <!-- lookup parent from repository -->
  </parent>

  <properties>
    <project.build.sourceencoding>utf-8</project.build.sourceencoding>
    <project.reporting.outputencoding>utf-8</project.reporting.outputencoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter</artifactid>
    </dependency>

    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-web</artifactid>
    </dependency>

    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-devtools</artifactid>
      <scope>runtime</scope>
    </dependency>
    <dependency>
      <groupid>org.springframework.boot</groupid>
      <artifactid>spring-boot-starter-test</artifactid>
      <scope>test</scope>
    </dependency>
    <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>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupid>org.springframework.boot</groupid>
        <artifactid>spring-boot-maven-plugin</artifactid>
      </plugin>
    </plugins>
  </build>


</project>

创建jsp放置文件夹

在src/main目录下创建webapp文件夹,为了迎合传统的结构,在webapp下创建web-inf文件夹,然后在新建的web-inf文件夹内创建jsp文件夹。(具体结构可以自行设计,无需按照这个demo来),目录结构如图

SpringBoot使用Jsp的示例代码

配置文件

配置文件内配置刚刚新建的目录,以及jsp文件后缀,配置如下:

server.port=8888


spring.mvc.view.prefix=/web-inf/jsp/
spring.mvc.view.suffix=.jsp

新建controller

创建一个indexcontroller,里面写入一个跳转方法,代码如下:

package com.dalaoyang.controller;

import org.springframework.stereotype.controller;
import org.springframework.ui.model;
import org.springframework.web.bind.annotation.getmapping;

/**
 * @author dalaoyang
 * @project springboot_learn
 * @package com.dalaoyang.controller
 * @email yangyang@dalaoyang.cn
 * @date 2018/8/13
 */
@controller
public class indexcontroller {

  @getmapping("/")
  public string index(model model){
    model.addattribute("name", "dalaoyang");
    return "index";
  }

}

创建一个jsp

在src/main/webapp/web-inf/jsp下面新建一个index.jsp,代码如下:

<!doctype html>

<html lang="en">
<head>
  <meta charset="utf-8">
  <title>hello</title>
</head>
<body>
hello,${name}
</body>
</html>

运行测试

启动项目,在浏览器访问http://localhost:8888/,显示如下结果:

SpringBoot使用Jsp的示例代码

源码下载 :

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。