代码如下:
@RequestMapping("/modelandview")
public ModelAndView moderAndView(){
ModelAndView mav=new ModelAndView();
//跳转到JSP页面
mav.setViewName("add");
mav.addObject("name","张三");
System.out.println(mav.getModel().get("name"));
return mav;
}
控制台打印结果显示值已经存入ModelAndView中了,但在JSP页面用EL表达式${name}取值一直无法取出,
页面直接显示 ${name} 而不是存储的值。
JSP页面代码为:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>hello ,Lily</h1>
${name}
</body>
</html>
解决:在<%@ page contentType=“text/html;charset=UTF-8” language=“java” %>中加入isELignored=false。
在page directive中的isELIgnored属性用来指定是否忽略。
格式为: <%@ page isELIgnored="true|false"%>
如果设定为真,那么JSP中的表达式被当成字符串处理。
比如下面这个表达式KaTeX parse error: Expected '}', got 'EOF' at end of input: …ored="true"时输出为{2000 % 20},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。