Можно ли в JSP напечатать значение переменной, имя которой находится в другой переменной? - PullRequest
1 голос
/ 21 августа 2009

У меня проблема вот в чем есть переменная

<core:set var="type">*one of: load,migrate, or ...* </core:set>

и значение загрузить, перенести, - это карта. Теперь я хочу напечатать их значение в зависимости от типа? Возможно ли это вообще?

Ответы [ 2 ]

1 голос
/ 21 августа 2009

Это даст тот же эффект, что и ответ @ 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, но обычно вам это нужно только во время отладки, поэтому у меня нет такой проблемы с кодом скриптлета.

1 голос
/ 21 августа 2009

если их нет на карте, это сложно.

Полагаю, вы хотели сделать это так, как работает Perl: где вы можете набрать

$foo = "stuff";
$varName = "foo";
print $$varName; #prints "stuff"

Это не работает в JSP.

Если это карта, вы можете сделать ${mapValue[key]}. Информация на этой странице рядом с разделом Переменные

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...