RestController返回数据无法在JSP页面渲染EL表达式问题求助
解决Controller数据无法传递到JSP渲染的问题
嘿,我看你遇到的问题是JSP页面直接输出了${greeting}而不是你在Controller里设置的实际值对吧?这大概率是因为JSP的EL(表达式语言)没有被启用导致的,下面给你几个解决办法:
方法一:在单个JSP页面启用EL
直接在你的JSP页面顶部的page指令里添加isELIgnored="false"属性,明确告诉页面不要忽略EL表达式。修改后的JSP代码如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1" isELIgnored="false"%> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Welcome page</title> </head> <body> Greeting : ${greeting} This is a welcome page. </body> </html>
方法二:全局启用EL(适合多页面场景)
如果你的项目里有很多JSP页面,不想逐个修改的话,可以在web.xml中添加全局配置,让所有JSP都支持EL:
<jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <el-ignored>false</el-ignored> </jsp-property-group> </jsp-config>
另外补充一句:你的控制器类名叫RestController但用了@Controller注解,这个是没问题的——因为@RestController是用来返回JSON/XML等数据的,而你这里是要返回JSP视图,所以@Controller的用法完全正确,不用改动。
内容的提问来源于stack exchange,提问作者Praveen Parihar
相关产品推荐
相关产品推荐

