当前位置: 首页 > 面试题库 >

使用JSTL标记转义JSP EL(点字符)

徐弘图
2023-03-14
问题内容

某些框架(Spring,Tomcat本身)添加了默认情况下无法在EL表达式内使用的Servlet请求属性。一个例子是

javax.servlet.forward.context_path = /myWebapp

因此,为了使用JSTL获得价值,我通常会使用

<c:out value="${javax.servlet.forward.context_path}" />

但是,这不起作用,因为EL解析器希望javax是对象A的键,并且servlet是该对象的属性(依此类推)。

所以我的问题是:如何逃脱点字符?

我试过使用

<c:out value="${javax\.servlet\.forward\.context_path}" />

但这也不起作用,并从EL解析器中引发错误。

我知道在处理地图时,我可以使用类似

<c:out value="${aMap['key.from.map.with.dots']}" />

但这不能处理请求中的第一级对象,因为我也尝试使用

<c:out value="${['javax.servlet.forward.context_path']}" />

这也不起作用。

有任何想法吗?


问题答案:

如果您知道属性的范围,则可以从适当的隐式对象中获取它,例如

${requestScope['javax.servlet.forward.context_path']}

我不确定是否有隐式对象以这种方式检查所有范围{xxx}



 类似资料:
  • 因此,我想访问子标记result1、result2、result3中父标记属性test1、test2、test3(这些属性的返回值为true/false)的结果,以根据返回的条件值显示输出,不管它是true还是false。 谢谢,开发者。

  • 我在这里做错了什么: 我一直在 但这很好: 显然我想避免 没有也不行,我的jstl不知道

  • IBM WAS:8.5.5版本 在JSP页面上有 错误500:java。lang.例外:java。lang.VerifyError:JVMVRFY012堆栈形状不一致;class=com/ibm/\u jsp/\u desktop,method=\u jspx\u meth\u c\u set\u 0(Ljavax/servlet/jsp/PageContext;)Z、 pc=73; 签名org/

  • 问题内容: 我正在尝试创建一种类似于英语的小型语言来指定任务。基本思想是将陈述分为动词和名词短语,这些动词应适用于它们。我正在使用nltk,但未获得我希望的结果,例如: 在每种情况下,它都未能意识到第一个单词(选择,移动和复制)被用作动词。我知道我可以创建自定义标签和语法来解决此问题,但是与此同时,当很多此类东西不在我的支持范围内时,我犹豫要重新发明轮子。我特别希望可以同时处理非英语语言的解决方案

  • 这些正则表达式快把我累死了,不管我读什么,我都无法理解这个概念。 这是我的问题,我相信它非常容易解决。 我只想用

  • 问题内容: 我收到以下错误: 我尝试遵循此教程,但是如果我写的话,它将给我一个错误 我是新手,有人可以向我指出正确的方向吗? 问题答案: 我的建议是完全忘记标记,并使用纯Java(在servlet或首选MVC框架的操作中)进行所有数据库操作。这个servlet将建立一个bean实例列表,准备由您的JSP显示。用于将请求从servlet调度到JSP。 甚至官方的Java EE教程 都说: 表7-7中