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

来源:本网整理

jsp中被包含页面或者父页面增加才可以使用。JSP 2.0的一个主要特点是它支持表达语言(expression language)。JSTL表达式语言可以使用标记格式方便地访问JSP的隐含对象和JavaBeans组件,JSTL的核心标记提供了流程和循环控制功能。自制标记也有自定义函数的功能,因此基本上所有seriptlet能实现的功能都可以由JSP替代。在JSP 2.0中,建议尽量使用EL而使JSP的格式更一致。在web.xml的中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。在page directive中的isELIgnored属性用来指定是否忽略。格式为:false"%>如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式${2000%20}在isELIgnored="true"时输出为${2000%20},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="falsewww.zgxue.com防采集请勿采集本网。

s">

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

投稿:jingxian 字体:[增加 减小] 类型:转载 时间:2016-09-17 我要评论 下面小编就为大家带来一篇jsp页面中EL表达式被当成字符串处理不显示值问题的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 ">

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

jsp中el表达式的使用需要在page中设置isELIgnored=true。在web.xml的<jsp-property-group>中可以控制一组JSP是否使用EL,在每个JSP中也可以指定是否该JSP使用EL。在page directive中的

web.xml

表示是否禁用EL语言,TRUE表示禁止.FALSE表示不禁

<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" >

()\"> 修改为: ('<%=duty%>')\">

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

理想正压流体在有势彻体力作用下作定常运动时,运动方程(即欧拉方程)沿流线积分而得到的表达运动流体机械能守恒的方程。因著名的瑞士科学家D.伯努利于1738年提出而得名。对于重力场中的不可

后来把web.xml改成

就目前理解为字段类型错误。{j.fid}\"为整数,但此处可能是后台传递过来的值是null 也就“”空字符串。又或者是后台按整数取值,页面提交请求为“”空字符串,因此出现此类错误。

<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表达式被当成字符串处理不显示值问题的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持突袭网。

1.很简单,java中不能用el表达式,它会当成一个字符串传过去.只能用+obj.getflowId()+,试试问题就解决了2.也可以把('/acms/financing/contract/contractItem.view&action=showFlowImage1&processId=${obj.flowId}','600','800')"class=\\"Content\\">"+displayValue+"直接写在页面上就不会错.3.还可以用js页面中用个hidden${obj.flowId}"/>()"class="Content">"+displayValue+"js:abc(){window.openWindow('/acms/financing/contract/contractItem.view&action=showFlowImage1&processId=$('flowId')','600','800')\\"}4.2和3方法差不多,如果你这个ID是每条记录循环出来的,那上的方法都不性下门给你用和struts的标签吧!还可以用jstl标签别的代码('/acms/financing/contract/contractItem.view&action=showFlowImage1&processId=${obj.flowId}','600','800')"class=\\"Content\\">"${displayValue}别的代码{displayValue}这个值看你自己怎么传了,就不用我说了内容来自www.zgxue.com请勿采集。

免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
Copyright © 2017 www.zgxue.com All Rights Reserved