【发布时间】:2009-08-21 10:49:45
【问题描述】:
我遇到的问题是这样的 有变数
<core:set var="type">*one of: load,migrate, or ...* </core:set>
load, migrate, 的值是一个映射。现在,我想根据类型打印这些值?有可能吗?
【问题讨论】:
标签: java jsp jakarta-ee
我遇到的问题是这样的 有变数
<core:set var="type">*one of: load,migrate, or ...* </core:set>
load, migrate, 的值是一个映射。现在,我想根据类型打印这些值?有可能吗?
【问题讨论】:
标签: java jsp jakarta-ee
这样会达到和@Chii的回答一样的效果:
<c:set var="attributeName" value="foo"/>
<%
out.println(pageContext.getAttribute(attributeName) + " = " + pageContext.getAttribute(pageContext.getAttribute(attributeName)));
%>
这很讨厌,如果你需要这样做,它将列出 页面范围内的所有属性:
<%
for (String attributeName : pageContext.getAttributeNamesInScope(PageContext.PAGE_SCOPE))
{
out.println(attributeName + " = " + pageContext.getAttribute(attributeName));
}
%>
不要认为在 JSTL 中有办法做到这一点,但你通常只在调试期间需要这个,所以我对 scriptlet 代码没有这样的问题。
【讨论】:
如果它们不在地图中,那就很难了。
我假设你想按照 perl 的工作方式来做:你可以在哪里输入
$foo = "stuff";
$varName = "foo";
print $$varName; #prints "stuff"
这在 jsp 中不起作用。
如果是地图,你可以${mapValue[key]}。变量部分附近的 this page 信息
【讨论】: