相关疑难解决方法(0)

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

一些框架(Spring,Tomcat本身)添加了默认情况下不能在EL表达式中使用的servlet请求属性.一个例子是

javax.servlet.forward.context_path = /myWebapp
Run Code Online (Sandbox Code Playgroud)

所以,为了使用JSTL获取值,我通常会使用

<c:out value="${javax.servlet.forward.context_path}" />
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为EL解析器期望javax是对象A的关键并且servlet是该对象的属性(等等).

所以我的问题是:如何逃脱点角色?

我试过用了

<c:out value="${javax\.servlet\.forward\.context_path}" />
Run Code Online (Sandbox Code Playgroud)

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

我知道在处理地图时我可以使用类似的东西

<c:out value="${aMap['key.from.map.with.dots']}" />
Run Code Online (Sandbox Code Playgroud)

但是我没有使用请求中的第一级对象,因为我也尝试过使用

<c:out value="${['javax.servlet.forward.context_path']}" />
Run Code Online (Sandbox Code Playgroud)

这也不起作用.

有任何想法吗?

java jsp jstl el

7
推荐指数
1
解决办法
2738
查看次数

标签 统计

el ×1

java ×1

jsp ×1

jstl ×1