在做项目的时候,引用的样式是这样的:
href="${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css"
但是页面打开后没有样式,自己排查了下样式的路径没有问题,所以定位在EL表达式的问题上,手动把
${pageContext.request.contextPath}去掉,用相对路径,果然页面显示了,那就先凑合着继续做项目,但当web成返回页面的时候,不得不
用EL表示取返回的数据时
,用到的${}符号死活不起作用,这时不得不解决这个问题:
有一位博主给出的解决方案就是用了<%@ page isELIgnored="false"%>,所以试了下完美解决:
JSP页面中的EL标签直接成字符串输出(如:${user.id}),说明el标签没有被识别,造成的原因有:
1.jdk+jstl的组合不匹配
2.web.xml版本不匹配
但我们解决以上这个问题时,先在jsp页面的开头加一句
<%@ page isELIgnored="false" %>再测试 还是不行就检查1和2的问题
下面说下<%@ page isELIgnored="false"%>的作用:
在每个JSP中可以指定该JSP是否使用EL。在page directive中的isELIgnored属性用来指定是否忽略。格式为:
<%@ page isELIgnored="true|false"%>
如果设定为true,也就是EL被忽略,那么JSP中的表达式被当成字符串处理。比如我上边的路径直接解析成
"${pageContext.request.contextPath}/plugins/ionicons/css/ionicons.min.css" 是个不存在的路径
,而isELIgnored="false"时把${pageContext.request.contextPath}解析成当前路径,所以才解决了问题
<%@ page isELIgnored="false"%>的作用
原文:https://www.cnblogs.com/never-give-up-java/p/13747909.html