10.3、spring boot的web应用——支持jsp视图

、spring boot默认是不支持响应和返回jsp视图的,若要spring boot支持jsp视图,需要设置下面两步:

  • 导入 tomcat-embed-jasper依赖
  • 需要在application.properties中配置jsp

    1、导入依赖
    在pom.xml文件中导入jsp的依赖:

        <dependency>
            <groupId>org.apache.tomcat.embed</groupId>
            <artifactId>tomcat-embed-jasper</artifactId>
            <version>8.5.4</version>
        </dependency>

2、创建jsp文件的目录
在/src/main/下面创建目录/webapp/WEB-INF/目录,jsp文件是默认存储在该目录下的。例如下面形式,把jsp文件放在WEB-INF目录的jsp目录下。jsp目录为随意定义的一层目录。
这里写图片描述

在application.properties文件配置响应jsp文件的目录位置和jsp的格式。配置如下:

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

表示解析后的jsp文件格式为.jsp,存放位置为/WEB-INF/jsp/目录下。

下面通过示例演示

二、示例1

1、导入上面的依赖,创建jsp的存放位置,以及在application.properties中配置完成后,下面演示响应请求。

启动类为:

@SpringBootApplication
public class App {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(App.class);
        ConfigurableApplicationContext context = app.run(args);

    }
}

2、创建视图控制类

package com.lzj.spring.boot;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
/*
 * 1、spring boot 默认不支持jsp的,需要导入tomcat-embed-jasper
 *2、需要在application.properties中配置:
 *  spring.mvc.view.prefix=/WEB-INF/jsp/
    spring.mvc.view.suffix=.jsp
    注意:如果/WEB-INF/jsp/最后不加'/',则在返回的字符串'ok'和'fail'的最前面加'/'
*3、如果要把返回的字符串映射成一个jsp文件,在类的注解上不能用@RestController,因为该注解中内部包含了@ResponseBody注解,
*   还是用@Controller比较好
 * */

@Controller
public class MyJsp {

    @RequestMapping("/createJsp")
    public String createJsp(@RequestParam(value="name") String name){
        if(name.equals("lzj")){
            return "success";
        }
        return "fail";
    }

}

3、创建响应的jsp视图
在/WEB-INF/jsp/目录下分别创建success.jsp和fail.jsp视图。
success.jsp视图:

<h1>SUCCESS</h1>

fail.jsp视图:

<h1>FAIL</h1>

运行启动类,当在浏览器中输入http://localhost:8080//createJsp?name=lzj请求后,浏览器返回的视图为success.jsp的视图,表示请求成功。注意浏览器中的请求连接没有改变,因为我们没有重定向。

这里写图片描述

三、示例2:给jsp视图传参数

继续采用如上配置后,下面直接定义控制视图层

@Controller
public class MyJsp {

    @RequestMapping("/login")
    /*通过Model模型,把数据加载到返回的login.jsp视图中*/
    public String login(Model model){
        model.addAttribute("username", "lzj");
        return "login";
    }
}

在/WEB-INF/jsp/目录下创建login.jsp文件,通过${username }获取视图中加载的数据。内容为:

<body>
    <h1>This is login page</h1>
    <h2>username is ${username }</h2>
</body>

运行启动类,在浏览器中输入http://localhost:8080/login后,浏览器中显示login.jsp视图。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值