我遇到的问题是这样的 有变量
<core:set var="type">*one of: load,migrate, or ...* </core:set>
加载,迁移,的值是一张地图。现在,我想根据类型打印这些值?它有可能吗?
答案 0 :(得分:1)
如果他们不在地图中,那很难。
我假设你想按照perl的工作方式去做:你可以输入
$foo = "stuff";
$varName = "foo";
print $$varName; #prints "stuff"
这在jsp中不起作用。
如果是地图,您可以${mapValue[key]}
。有关变量部分附近this page的信息
答案 1 :(得分:1)
这将达到与@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代码没有这样的问题。