是否使用EL表达式的配置

        今天在开发过程中发现一个细节问题,由于前端采用EasyTemplate模板方法实现数据展示,但老是不能正常显示出来。后来发现竟是EL将我的EasyTemplate的${...}解释执行了,导致我的模板不能正常展示后台数据。

        网上搜索将EasyTemplate所在的页增加<%@ page isELIgnored="true"%>解决。

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

一.在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL

<jsp-config> 包括<taglib> 和<jsp-property-group> 两个子元素。
        其中<taglib>元素在JSP 1.2时就已经存在;而<jsp-property-group>是JSP 2.0 新增的元素,其目的是给一定范围类的JSP文件设置一些特性。
        <jsp-property-group>元素主要有八个子元素,它们分别为:
        1.<description>:设定的说明;
        2.<display-name>:设定名称;
        3.<url-pattern>:设定值所影响的范围,如:/CH2 或 /*.jsp,具体来说,是义需要设置特性的JSPURL,比如<url-pattern>/jsp/xxx.jsp</url-pattern> 表示访问路径为/jsp/xxx.jsp需要设置一些特性
        4.<el-ignored>:若为true,表示不支持EL 语法,具体来说,符合url-pattern访问路径的JSP需要忽略表达式语言,也就是说JSP中有类似"${1+2}"这样的表达式会被直接输出到页面,不会被数学运算之后再输出
        5.<scripting-invalid>:若为true,表示不支持<% scripting %>语法,具体来说,符合url-pattern访问路径的页面是否支持<%%>这样的语法:如果设置为trueJSP页面中包含<% scripting %>语法,将会报错
        6.<page-encoding>:设定JSP 网页的编码,即设置符合url-pattern访问路径的页面的编码设置
        7.<include-prelude>:设置JSP 网页的抬头,扩展名为.jspf,表示符合url-pattern访问路径的JSP页面头部默认包含的文件
        8.<include-coda>:设置JSP 网页的结尾,扩展名为.jspf,即表示符合url-pattern访问路径的JSP页面尾部默认包含的文件

一个简单的<jsp-config>元素完整配置:

<jsp-config>
    <taglib>
        <taglib-uri>Taglib</taglib-uri>
        <taglib-location>/WEB-INF/tlds/MyTaglib.tld</taglib-location>
    </taglib>
    <jsp-property-group>
        <description>Special property group for JSP Configuration JSP example.</description>
        <display-name>JSPConfiguration</display-name>
        <url-pattern>/jsp/* </url-pattern>
        <el-ignored>true</el-ignored>
        <page-encoding>GB2312</page-encoding>
        <scripting-invalid>true</scripting-invalid>
        <include-prelude>/include/prelude.jspf</include-prelude>
        <include-coda>/include/coda.jspf</include-coda>
    </jsp-property-group>
</jsp-config>

 二.在每个JSP中也可以指定是否该JSP使用EL

在page directive中的isELIgnored属性用来指定是否忽略。格式为:

<%@ page isELIgnored="true|false"%>

如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式<p>${2000 % 20}</p>在isELIgnored="true"时输出为${2000 % 20},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring框架中使用EL表达式(Expression Language)可以方便地访问和操作Java对象,主要用于在JSP页面或Spring的注解中进行数据绑定和表达式求值。 以下是在Spring中使用EL表达式的几个常见场景和用法: 1. 在JSP页面中使用EL表达式: 在JSP页面中,可以使用EL表达式访问和操作Java对象的属性、方法和集合。例如,`${user.name}`可以获取名为user的Java对象的name属性值。 2. 在Spring MVC的注解中使用EL表达式: 在Spring MVC中,可以使用EL表达式在注解中动态地设置属性值。例如,`@RequestMapping("${url.mapping}")`可以根据EL表达式`${url.mapping}`的值动态地设置请求映射路径。 3. 在Spring的XML配置文件中使用EL表达式: 在Spring的配置文件中,可以使用EL表达式引用其他属性或bean的值。例如,`<property name="timeout" value="${connection.timeout}"/>`可以将`${connection.timeout}`的值设置为bean的timeout属性。 4. 使用Spring表达式语言(SpEL): Spring框架还提供了一种更强大的EL表达式语言,称为SpEL(Spring Expression Language)。SpEL支持更复杂的表达式求值和操作,可以在Spring的注解、XML配置文件以及运行时动态注入等场景中使用需要注意的是,在使用EL表达式时,需要确保相关的JAR包已经添加到项目的依赖中,通常是`javax.el-api`和`jstl`。 希望以上信息对你有所帮助!如果还有其他问题,请继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值