Springboot使用Jsp模板视图开发web应用(含问题分析)
发布日期:2021-10-12 17:51:32 浏览次数:4 分类:技术文章

本文共 4020 字,大约阅读时间需要 13 分钟。

最近有个springcloud项目,所有服务返回的信息是json字符串,现在需要对项目进行改造,使用jsp页面返回服务调用结果。开发工具为Idea。

先来看一下项目结构(只展示涉及到的部分,如果你的项目中没有对应文件夹,需要新建文件夹):

├── src│   ├── main│   │   ├── java│   │   │   └── com│   │   │       └── example│   │   │           └── demo│   │   │               └── controller│   │   │                    └── HelloController.java│   │   │               └──DemoApplication│   │   │              │   │   ├── resources│   │   │   └── application.properties│   │   └── webapp│   │   │    └── WEB-INF│   │   │    │       └── jsp│   │   │    │             └── page│   │   │    │                     └── page2.jsp│   │   │    │             └── page1.jsp│   │   │    └── index.jsp│   │   └──pom.xml

第一步:新建springboot项目

第二步:配置pom.xml文件

添加以下依赖

org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-tomcat
javax.servlet
javax.servlet-api
javax.servlet
jstl
org.apache.tomcat.embed
tomcat-embed-jasper
org.apache.tomcat
tomcat-jsp-api

第三步:配置application.properties或application.yml文件(这两个文件作用相同,只是里面配置内容的格式有所差别)

在application.properties中加入以下配置:

#资源路径开头spring.mvc.view.prefix=/WEB-INF/jsp/#资源路径结尾spring.mvc.view.suffix=.jsp

第四步:配置控制器Controller

HelloController.java内容如下:

注:之前的项目使用@RestController返回json,现在需要使用@Controller,有关这两个注解的区别,请点击

package com.example.demo.controller;        import org.springframework.stereotype.Controller;        import org.springframework.ui.Model;        import org.springframework.web.bind.annotation.RequestMapping;        import org.springframework.web.servlet.ModelAndView;/** * @Description: * @Author: Eric * @Date: 18/11/2 14:36 */@Controllerpublic class HelloController {	//形式一    @RequestMapping(value={"/page1"})    public String method1(){        return "page1";    }    @RequestMapping(value={"/page2"})    public String method2(){        return "page/page2";    }	//形式二    @RequestMapping("/page1m2")    public ModelAndView method3(){        // 页面位置 /WEB-INF/jsp/page1.jsp        ModelAndView mav = new ModelAndView("page1");        mav.addObject("page1","This is page1 ---ModelAndView");        return mav;    }	//形式三    @RequestMapping("/page1m3")    public String method4(Model model){        // 页面位置 /WEB-INF/jsp/page1.jsp        model.addAttribute("page1","This is page1 ---Model ");        return "page1";    }}

第五步:设置webapp目录为web资源文件目录:

ctrl+alt+shift+s打开下面内容,按流程操作
在这里插入图片描述

第六步:配置springboot启动类和jsp页面

(1)springboot启动类:DemoApplication.java

package com.example.demo;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplicationpublic class DemoApplication{    public static void main(String[] args) {        SpringApplication.run(DemoApplication.class, args);    }}

(2)jsp页面:

page1.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>    Title${page1}

page2.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>                Title            ${page2}        

第七步:启动项目

启动方式一:
在这里插入图片描述

启动方式二:

在这里插入图片描述

遇到的问题:

1、采用启动方式一启动项目后,后端服务向前台返回jsp页面或*通过url访问项目内静态资源(带文件类型后缀)*时,提示以下信息:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sat Nov 03 17:41:59 CST 2018
There was an unexpected error (type=Not Found, status=404).
/WEB-INF/jsp/page1.jsp

解决方式:

检查资源路径,如果发现资源路径错误,则修改访问路径;
如果资源路径正确,则采用启动方式二启动项目,具体原因未知,推测与Idea有关。

2、后端服务向前台返回jsp页面*或 通过url访问项目内静态资源(不带文件类型后缀)时,提示以下信息:

Whitelabel Error Page
This application has no explicit mapping for /error, so you are seeing this as a fallback.
Sat Nov 03 17:41:59 CST 2018
There was an unexpected error (type=Not Found, status=404).
No message available

解决方式:

检查资源路径,如果发现资源路径错误,则修改访问路径;
如果资源路径正确,检查application.properties文件是否配置了spring.mvc.view.suffix=.jsp

3、访问jsp页面但是却变成下载该页面

解决方式:

缺少jsp解析的jar包,参照第二步添加相关依赖即可

转载地址:https://blog.csdn.net/qq_39387856/article/details/83689177 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Activiti获取ProcessEngine的三种方法
下一篇:java.lang.NoClassDefFoundError: org/activiti/bpmn/model/StartEvent

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年04月09日 13时14分15秒