##SpringMVC框架中如果选用EL表达式,那么为什么报错?

Posted liurui-bk517

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了##SpringMVC框架中如果选用EL表达式,那么为什么报错?相关的知识,希望对你有一定的参考价值。

在SpringMVC框架中,可能我们会利用El表达式来获取当前工程名,可是竟然报错?

   <a href="user/testController?username=hehe">请求测试1</a>
    <a href="/user/testController?username=haha&password=123">请求测试2</a>
    <a href="$pageContext.request.contextPath/user/testController?username=haha&password=123">请求测试3</a>

可以看到我们上面的代码没问题,但是为什么选择请求测试3的时候,会报错呢?

  异常:

<%--[/$%7BpageContext.request.contextPath%7D/user/testController] in DispatcherServlet with name ‘DispatcherServlet‘--%>
后来才知道,在jsp中,如果选用这种格式,那么jsp的头部会有这样的一个属性:
isELIgnored="false",代表什么意思呢?

如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式$2000 % 20, 在isELIgnored="true"时输出为$2000 % 20,
而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。
所以我们建议在jsp的头部加上isELIgnored="false"的属性,这样我们的EL表达式就可以使用了

以上是关于##SpringMVC框架中如果选用EL表达式,那么为什么报错?的主要内容,如果未能解决你的问题,请参考以下文章

ModelAndView

ModelAndView

ModelAndView

SpringMVC返回数据给jsp页面(EL表达式取值)

JSP中el表达式的取值过程是怎样的?

解决jsp无法用el表达式的问题