在我之前使用Spring Security编写项目的过程中,我希望获取当前用户姓名然后在前端显示欢迎界面。在后台我将该用户信息在控制台输出时可以显示的,但是传入modelView对应变量以后,却不能在前端正确显示。
例如,我希望将用户名称注入JSP中的 ${user},但是在前端只能显示${user},而不显示用户名。
问题原因:
JSP 2.0的一个主要特点是它支持表达语言(expression language)。通俗的来说,使用EL可以将我们的表达式根据我们的需要来显示对应的结果。当不使用EL的时候,表达式则只是当做字符串被我们字面地显示。我们可以在JSP中这样操作EL功能开闭:<%@ page isELIgnored="false"%> 我们以JSP中含有${user},后端传入“admin”为例:
如果为true,那么前端只会显示${user}。
如果为false,那么前端会显示admin。
在JSP1.0中,EL是关闭的。
解决办法:
1. 使用JSP2.0
在你的web.xml中如下声明:
<web-app 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 ">
2.在你的JSP中添加<%@ page isELIgnored="false"%>
P.S. 文章不妥之处还望指正