Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When to use requestScope in jstl?

Tags:

jstl

A jstl variable is set in request scope in a jsp

<c:set var="name" value="Tiger" scope="request" />

This variable is accessed from a jspf included to this jsp. Now, is there any difference in accessing the variable in these two ways ?

1) <c:out value="${name}" />
2) <c:out value="${requestScope.name}" />

When to use requestScope ?

like image 849
Raheeb M Avatar asked Oct 01 '13 09:10

Raheeb M


2 Answers

Within my research (I am also new one for jstl), request scope can set values to request page from response page for example assume that we have a page called index.jsp and its action page is index_action.jsp

if we, set values to the action page

<c:set var="nme" scope="request" value="Janaka aravinda"/>
<%  request.getRequestDispatcher("index.jsp").forward(request, response); %>

(// I created nme variable and set its value as Janaka aravinda. and back to reload request page(index.jsp) )

Now we can call nme in index.jsp nme variable as follow Request value

<c:out value="${nme}"/>
like image 55
janaka aravinda Avatar answered Oct 07 '22 22:10

janaka aravinda


You use requestScope when you absoluetely want your object to come from the request, and not from the page, session or application scope. Inded, using ${name} will search for a name attribute in the page, then in the request, then in the session, then in the application.

Let's say that some other code in the JSP set a name attribute in the page scope. But you want to access the name in the request: you're forced to use requestScope.

Let's say the session might have a name attribute. Not using requestScope.name would return the session-scoped name if the JSP forgot to set the name attribute in the request scope.

If the goal of the JSP fragment is to access something set in the enclosing JSP, maybe this JSP fragment should be a JSP tag, and you should pass the name as an argument to this tag.

like image 44
JB Nizet Avatar answered Oct 07 '22 23:10

JB Nizet