Jsp中EL表达式不起作用

困扰了很久的JSP中的表达式被当成字符串处理,原因是出于版本不同,有些isELIgnored属性默认值为false,但有些默认为true;

所以这里要手动配置isELIgnored的属性为false

<%@ page contentType="text/html;charset=UTF-8" language="java"   %>
<%@ page contentType="text/html;charset=UTF-8" language="java"  isELIgnored="false" %>

下面是isELIgnored的作用:

JSP的一个主要特点是它支持表达语言(expression language)。JSTL表达式语言可以使用标记格式方便地访问JSP的隐含对象和JavaBeans组件,JSTL的核心标记提供了流程和循环控制功能。自制标记也有自定义函数的功能,因此基本上所有seriptlet能实现的功能都可以由JSP替代。

在JSP中,建议尽量使用EL而使JSP的格式更一致。 在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。

在page directive中的isELIgnored属性用来指定是否忽略。格式为: <%@ page isELIgnored="true|false"%> 如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式${1000 % 10}, 在isELIgnored="true"时输出为${1000 % 10},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。

posted @ 2022-11-12 11:20  一统天下。  阅读(67)  评论(0编辑  收藏  举报