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.javapackage 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=.jsp3、访问jsp页面但是却变成下载该页面
解决方式:
缺少jsp解析的jar包,参照第二步添加相关依赖即可转载地址:https://blog.csdn.net/qq_39387856/article/details/83689177 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
初次前来,多多关照!
[***.217.46.12]2024年04月09日 13时14分15秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
理解String.intern()和String类常量池疑难解析例子
2019-04-26
LeetCode题解(1175):质数排列(Python)
2019-04-26
【Android平台】 Alljoyn学习笔记二 编译自带的demo的步骤
2019-04-26
【Android平台】 Alljoyn学习笔记四 Android Core API参考
2019-04-26
【Alljoyn】Alljoyn学习笔记五 AllJoyn开源技术基础概念解析
2019-04-26
【Alljoyn】 Alljoyn学习笔记六 Alljoyn基本概念
2019-04-26
【Alljoyn】 Alljoyn学习笔记七 Alljoyn瘦客户端库介绍
2019-04-26
【Android】Activity生命周期
2019-04-26
【Android】Activity的四种launchMode
2019-04-26
【Android】Activity的task相关
2019-04-26
【Android】 Intent应用详解
2019-04-26
【Android】 Intent详解
2019-04-26
【Android】 常用的Intent
2019-04-26
Android中AsyncTask的简单用法
2019-04-26
【Android】 Android中Log调试详解
2019-04-26
【Android】Android中WIFI开发总结(二)
2019-04-26
【Android】Android之WiFi开发应用示例
2019-04-26
【Android】 Android adb常见问题整理
2019-04-26
【Android】 Android体系结构图
2019-04-26