与 Spring Boot 一起使用时,JSP 页面中的 contextPath 为空
Posted
技术标签:
【中文标题】与 Spring Boot 一起使用时,JSP 页面中的 contextPath 为空【英文标题】:contextPath is empty in JSP page while using it with Spring Boot 【发布时间】:2021-12-30 18:32:40 【问题描述】:我想在 JSP 页面上加载 CSS。但是我在 JSP 页面中得到了空的 pageContext.request.contextPath。我使用这种方法是因为如果我在模板或 JSP 内的不同目录中移动页面,那么我不需要继续更改引用的 CSS 或 js 文件的路径。
Jsp页面如下
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ taglib prefix = "x" uri = "http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib prefix = "c" uri = "http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix = "fmt" uri = "http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix = "fn" uri = "http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@page isELIgnored="false"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Home Page</title>
<link rel="stylesheet" href="$pageContext.request.contextPath/static/default-theme.css" />
</head>
<body>
<div class="container">
<H2>Reached Home.</H2>
</div>
</body>
</html>
application.properties 文件如下
spring.mvc.view.prefix=/templates/jsp/
spring.mvc.view.suffix=.jsp
我使用的是 Spring 2.6.0 版。连同 pom.xml 中的以下依赖项- spring-boot-starter-web spring-boot-starter-tomcat(范围:提供) tomcat-embed-jasper(范围:提供) jstl
根据 Spring Boot,pageContext 是隐式的。那么这里可能出了什么问题? 任何帮助或建议都将不胜感激。
【问题讨论】:
【参考方案1】:检查是否删除 如果不工作测试:request.getContextPath()
毕竟看到这个链接: pageContext.request.contextPath not working
【讨论】:
以上是关于与 Spring Boot 一起使用时,JSP 页面中的 contextPath 为空的主要内容,如果未能解决你的问题,请参考以下文章
将 Spring Boot 与 JPA 一起使用时如何持久化
将 MySQL 和 Spring Boot 应用程序与 docker 一起使用时出错
无法将 Spring Data MongoDB + Spring Data JPA 与 Spring Boot 一起使用