为什么在intellij idea 13开发环境中要使用<c:if>标签必须在当前jsp页设置isELIgnored="true"

问题描述

环境是java1.764win8.1web.xml<?xmlversion="1.0"encoding="UTF-8"?><web-appxmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"version="2.5">JSTL是网上下的1.2.1版本在网上各种搜都没找到答案,哪位能给个正确的解释isELIgnored="true"不是用来设置忽略直接嵌入在html中的EL代码的吗?设置之后${}变量都只能用<c:out>输出,但为什么会影响<c:if><c:out><c:set><c:choose><c:foreach>都没有问题的还有就是在WEB-INFO目录加不加c.tld都是没有关系的,使用JSTL只要导入jstl包就好使用JSTL的1.2.0、1.2.1、1.2.2版本也是没有关系的如果不加isELIgnored="true"会报错(不加的话默认isELIgnored="false",这样就无法使用<c:if>了,但是其他的标签好像还可以用)HTTPStatus500-/page2/ELTest.jsp(line:21,column:4)AccordingtoTLDorattributedirectiveintagfile,attributevaluedoesnotacceptanyexpressionstypeExceptionreportmessage/page2/ELTest.jsp(line:21,column:4)AccordingtoTLDorattributedirectiveintagfile,attributevaluedoesnotacceptanyexpressionsdescriptionTheserverencounteredaninternalerrorthatpreventeditfromfulfillingthisrequest.exceptionorg.apache.jasper.JasperException:/page2/ELTest.jsp(line:21,column:4)AccordingtoTLDorattributedirectiveintagfile,attributevaluedoesnotacceptanyexpressionsorg.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:42)org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:443)org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:149)org.apache.jasper.compiler.Validator$ValidateVisitor.checkXmlAttributes(Validator.java:1240)org.apache.jasper.compiler.Validator$ValidateVisitor.visit(Validator.java:875)org.apache.jasper.compiler.Node$CustomTag.accept(Node.java:1538)org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375)org.apache.jasper.compiler.Node$Visitor.visitBody(Node.java:2427)org.apache.jasper.compiler.Node$Visitor.visit(Node.java:2433)org.apache.jasper.compiler.Node$Root.accept(Node.java:474)org.apache.jasper.compiler.Node$Nodes.visit(Node.java:2375)org.apache.jasper.compiler.Validator.validateExDirectives(Validator.java:1798)org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:217)org.apache.jasper.compiler.Compiler.compile(Compiler.java:373)org.apache.jasper.compiler.Compiler.compile(Compiler.java:353)org.apache.jasper.compiler.Compiler.compile(Compiler.java:340)org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:646)org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357)org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)javax.servlet.http.HttpServlet.service(HttpServlet.java:728)org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)

解决方案

本帖最后由 FWDuo 于 2014-01-01 08:44:24 编辑
解决方案二:
<%@pageisELIgnored="true|false"%>如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式<p>${2000%20}</p>在isELIgnored="true"时输出为${2000%20},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。
解决方案三:
引用1楼huxiweng的回复:

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

您没有看清问题为什么在isELIgnored="false"情况下<c:if>无法使用
解决方案四:
引用2楼FWDuo的回复:

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

您没有看清问题为什么在isELIgnored="false"情况下<c:if>无法使用

解决方案五:
引用3楼huxiweng的回复:

Quote: 引用2楼FWDuo的回复:
Quote: 引用1楼huxiweng的回复:
<%@pageisELIgnored="true|false"%>如果设定为真,那么JSP中的表达式被当成字符串处理。比如下面这个表达式<p>${2000%20}</p>在isELIgnored="true"时输出为${2000%20},而isELIgnored="false"时输出为100。Web容器默认isELIgnored="false"。

您没有看清问题为什么在isELIgnored="false"情况下<c:if>无法使用

可是为什么在设置为false的时候只有<c:if>不行<c:out><c:set><c:choose><c:foreach>都是可以的<%@taglibprefix="c"uri="http://java.sun.com/jstl/core"%><%@pagecontentType="text/html;charset=UTF-8"language="java"isELIgnored="true"%><html><head><title></title></head><body><c:setvar="age"value="20"scope="request"/><c:iftest="${age<18}">abc</c:if>

时间: 2025-01-09 06:31:03

为什么在intellij idea 13开发环境中要使用&amp;lt;c:if&amp;gt;标签必须在当前jsp页设置isELIgnored=&amp;quot;true&amp;quot;的相关文章

在团队开发环境中使用 Visual Studio .NET (二)

脱机时签入文件 不可能在脱机时签入文件:因为您未连接到网络,签入命令未启用.这是故意设置的,这样可以在项目重新联机时方便地查看哪些文件在脱机时被签出. 进入联机状态 这与进入脱机状态基本上相同.若要使解决方案及其项目联机,请在"File"菜单上,单击"Source Control",然后单击"Change Source Control...".显示的对话框与进入脱机状态时相同.选择"Connected"即可使解决方案和项目联机

在VC++开发环境中整合Pro*C/C++

c++ 本文所讨论的内容基于以下环境:Microsoft Visual C++ 6.0ORACLE 8i (8.1.7) 当前版本:1.0 (041221) 声明:本文所述的某些操作可能对系统产生重大影响,请慎重操作!本人不对此产生的任何后果负责! 在VC++开发环境中整合Pro*C/C++Pro*C/C++为C/C++语言访问ORACLE数据库提供了极大的方便,但是,在编译的时候往往需要在命名行模式下编译pc文件,而目前多数开发都是在VC++这种整合开发环境中完成的,要在两者之间不停的切换,不

IFTTT在开发环境中使用Docker的经验

本文讲的是IFTTT在开发环境中使用Docker的经验,[编者的话]IFTTT是"if this then that"的缩写,事实上是让你的网络行为能够引发连锁反应.让你使用更为方便,其宗旨是"Put the internet to work for you"(让互联网为你服务).Docker在IFTTT中也在开发实践,以下是Nicholas Silva的一些介绍. IFTTT是一款新兴的互联网工具型应用,正如他们给自己的介绍"If This Then T

Linux集群和自动化维3.7.1 开发环境中的Fabric应用实例

3.7 Fabric应用实例 3.7.1 开发环境中的Fabric应用实例 笔者公司在开发环境下使用的都是Xen和KVM虚拟机器,有不少数据,因为是内网环境,所以直接用root和SSH密码连接.系统统一为CentOS 6.4 x86_64,内核版本为2.6.32-358.el6.x86_64,Python版本为2.6.6. 实例1,同步Fabric跳板机的/etc/hosts文件,脚本如下: #!/usr/bin/python # -*- coding: utf-8 -*- from fabri

让你提前认识软件开发(51):VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改

第3部分 软件研发工作总结 VC++集成开发环境中Linux下Pclint工程的配置方法及常见错误修改   [文章摘要]         Pclint是一种C/C++软件代码静态分析工具.它是一种更加严格的编译器,能够发现普通编译器所不能发现的代码中的很多问题,因此被广泛应用于软件开发项目中.        本文介绍了如何在VC++集成开发环境中配置Linux下的Pclint工程,给出了C语言中pclint规则A检查的常见错误,并描述了对应的修改办法.   [关键词]          VC++

如何在rails开发环境中取得上下文路径

问题描述 如何在rails开发环境中取得上下文路径下面是C#的写法string contextPath = Request.ApplicationPath;求教谢谢!先 解决方案 使用RAILS_ROOT常量解决方案二:查看一下environment.rb就知道了

使用xhprof在开发环境中测试php性能

以百分之一的概率产生测试数据,尽量不影响正式环境效率. class XHProf {     // private $XHProfPath = 'xhprof/';     private $XHProfPath = '/usr/local/apache/htdocs/xhprof/';     private $applicationName = 'sias_application';     private $sampleSize = 100;     private static $ena

克服云计算开发环境中的容器难题

如今,企业寻求超越虚拟化,甚至许多企业在寻找一个理想的公共云应用策略,而容器都人气暴涨.因为容器比虚拟机的开销更低,往往是更快.更容易部署,而且通常让企业的每个服务器上运行更多的应用程序.容器似乎是完美的发展目标,但他们还存在安全性和法规遵从问题.另外,开发人员必须处理质量和可用性风险问题.而在探讨在云开发环境使用容器时,不能解除他们使用容器的这些痛点. 开发人员应查看容器中的多道程序.多用户分区,以及虚拟机之间的事情.所以他们必须管理容器隔离的应用程序的组件,了解容器管理工具,如Docker的

Docker 在 PHP 项目开发环境中的应用

环境部署是所有团队都必须面对的问题,随着系统越来越大,依赖的服务也越来越多,比如我们目前的一个项目就会用到: Web服务器:Nginx Web程序:PHP + Node 数据库:MySQL 搜索引擎:ElasticSearch 队列服务:Gearman 缓存服务:Redis + Memcache 前端构建工具:npm + bower + gulp PHP CLI工具:Composer + PHPUnit 因此团队的开发环境部署随之暴露出若干问题: 依赖服务很多,本地搭建一套环境成本越来越高,初级