Jak uzyskać dostęp do atrybutów na żądanie w JSP?

Obecnie używam:

<%
final String message = (String) request.getAttribute ("Error_Message");
%>

A następnie

<%= message %>

Jednak zastanawiam się, czy to samo można zrobić z EL lub JSTL zamiast używać skryptleta.

 51
Author: Martin, 2011-02-06

3 answers

El wyrażenie:

${requestScope.Error_Message}

Istnieje kilka ukrytych obiektów w JSP EL. Zobacz język wyrażeń pod nagłówkiem "Obiekty niejawne".

 81
Author: Christoph Seibert,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-03-05 11:41:00

Użycie JSTL:

<c:set var="message" value='${requestScope["Error_Message"]}' />

Tutaj var ustawia nazwę zmiennej i request.getAttribute jest równe requestScope. Ale to nie jest konieczne. ${Error_Message} da taki sam wynik. Sprawdzi każdy celownik. Jeśli chcesz wykonać jakąś operację z zawartością, którą bierzesz z Error_Message musisz to zrobić używając message. jak poniżej.

<c:out value="${message}"/>
 1
Author: Menuka Ishan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-05-25 06:37:11

Zwrócę na to uwagę, gdyby ktoś inny miał podobny problem.
Jeśli kierujesz żądanie bezpośrednio do JSP, za pomocą Apache Tomcat web.konfiguracja xml, wtedy ${requestScope.attr} wydaje się nie działać, zamiast ${param.attr} zawiera atrybut request attr.

 1
Author: forumulator,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-21 13:07:37