假如这样写:
<link rel="stylesheet" type="text/css" href="../css/login.css"/>
文件会报找不到。原因如下:
本来页面路径:http://SERVER:PORT/PROJECT/web/login.jsp
css路径:http://SERVER:PORT/PROJECT/css/login.css
但是我们使用Spring mvc通过servlet后路径就会变成这样:
http://SERVER:PORT/PROJECT/login.do
http://SERVER:PORT/css/login.css
显然就出错了
所以css可以这样写:
<link rel="stylesheet" type="text/css" href="css/login.css"/>
后来我想使用绝对路径引入:
<link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/css/login.css"/>
EL表达式解析后可能会解析成这样:
$%7BpageContext.request.contextPath%7D
网上说的可能原因:
- web.xml 中头文件web-app的版本 低于2.4
- 引用的JSP-jar包版本太低,无法解析EL表达式,改为2.1、2.2会好一点
- 设置:isELignored=false
<%@ page isELIgnored="false" language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
isELignored的作用:
比如下面这个表达式KaTeX parse error: Expected '}', got 'EOF' at end of input: …ored="true"时输出为{2000 % 20},而isELIgnored="false"时输出为100。
提供web.xml2.4版本:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
</web-app>
写成文章简单的记录一下问题