hysql.org技术站
当前位置:首页 > JPS编程 > 正文

jsp页面中EL表达式被当成字符串处理不显示值问题

06-14 JPS编程

在自己练手时遇到了EL表达式被当成字符串处理而没有正确解析的现象。当时工程中使用的Javaee5,

web.xml

<web-app version="2.5" 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" >

EL表达式死活不解析,被当成字符串处理了。

后来把web.xml改成

<web-app version="2.4" 
xmlns="http://java.sun.com/xml/ns/j2ee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">

重新部署,启动tomcat,结果EL表达式被正确解析了出来。

后来进一步查资料得知:

这是Jsp2.0的一个新特性:

二)引入表达式语言(EL)

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

在web.xml的<jsp-property-group>中可以控制一组 JSP是否使用EL,在每个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"。

虽然 JSP 2.0可以使JSP中完全使用表达语言而避免scriptlet,在实际编程中,应该根据程序的功能要求和编程人员的自身条件选择合适的方式。使用表达语言的JSP比较方便规整,但是由于需要将标记进行转换,在第一次被调用时会比较慢;有些编程人员由于对Java比较了解,因而更习惯JSP 1.2之前的编程方式,因此,在使用中应因地制宜地选择适用的编程方法。

也就是说在javaee4中默认设置是<%@ page isELIgnored="false"%>,而javaee5中默认设置可能是<%@ page isELIgnored="true"%>,所以在javaee5我们可以通过在jsp页面设置<%@ page isELIgnored="false"%>来指定正常解析EL表达式

以上这篇jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

  • 浅谈java里的EL表达式在JSP中不能解析的问题
  • JAVA JSP页面技术之EL表达式整理归纳总结
  • 浅谈jsp EL表达式取值过程、page和pagecontext的区别
  • JSP中EL表达式的用法详解(必看篇)
  • jsp中EL表达式获取数据
  • 实例解析JSP中EL表达式的各种运用
  • JSP 不能解析EL表达式的解决办法
  • JSP EL表达式详细介绍
  • jsp 不支持EL表达式,解决办法
  • JSP中EL表达式用法_动力节点Java学院整理

相关拓展:JSTL使用条件

jstl带来的优雅编程体验人所皆知,在java社区蒸蒸日上的今天使用jstl已无需考虑很多问题,我们可以用myeclipse等java集成开发环境轻松搭建一个jstl的web项目。即便有了myeclipse这么得力的工具帮我们快速开发web项目,但是有一些知识我们必须了解的 ---- 那就是jstl与servlet版本,以及jsp版本之间的依赖关系。

以下列出jstl各个版本与jsp及servlet版本之间的依赖关系。

版本号

JSTL 版本

要求(必须满足此条件)

获取Taglib途径

Standard 1.2

JSTL 1.2 (尚未经过JCP认证)

Servlet 2.5, JavaServer Pages 2.1

subversion

Standard 1.1

JSTL 1.1

Servlet 2.4, JavaServer Pages 2.0

下载

Standard 1.0

JSTL 1.0

Servlet 2.3, JavaServer Pages 1.2

下载

版权保护: 本文由 首页 原创,转载请保留链接: http://www.hysql.org/jps/20180614/2992.html