是否使用EL表达式的配置

编程技术  /  houtizong 发布于 3年前   68

        今天在开发过程中发现一个细节问题,由于前端采用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"。

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客