ChatGPT解决这个技术问题 Extra ChatGPT

How to access at request attributes in JSP?

Currently I use:

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

and then

<%= message %>

However I wonder if the same can be done with EL or JSTL instead of using a scriptlet.


G
Gary Sheppard

EL expression:

${requestScope.Error_Message}

There are several implicit objects in JSP EL. See Expression Language under the "Implicit Objects" heading.


That requestScope is by the way optional. The ${Error_message} will scan in all scopes, in order of page, request, session and application and return the first match.
@BalusC Thanks for the hint. But I probably keep the requestScope anyway.
Thanks, I provided a new one now.
Thanks a lot. I used Client client = new Client(); client.setName("María"); request.setAttribute("client", client); and in my jsp page I used ${ client.name } and It wroks fine.
M
Menuka Ishan

Using JSTL:

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

Here var sets the variable name and request.getAttribute is equal to requestScope. But it's not essential. ${Error_Message} will give you the same outcome. It'll search every scope. If you want to do some operation with content you take from Error_Message you have to do it using message. like below one.

<c:out value="${message}"/>

f
forumulator

Just noting this here in case anyone else has a similar issue.
If you're directing a request directly to a JSP, using Apache Tomcat web.xml configuration, then ${requestScope.attr} doesn't seem to work, instead ${param.attr} contains the request attribute attr.