2013-10-01 19 views
7

Zmienna JSTL mieści się w zakresie żądań w JSPKiedy użyć requestScope w jstl?

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

Zmienna ta jest dostępne z jspf włączone do tego JSP. Czy jest jakaś różnica w dostępie do zmiennej na te dwa sposoby?

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

Kiedy korzystać z requestScope?

Odpowiedz

20

Użyj requestScope, gdy bezwzględnie chcesz, aby obiekt pochodził z żądania, a nie ze strony, sesji lub zakresu zastosowania. Inded, przy użyciu atrybutu ${name} wyszukuje atrybut name na stronie, następnie w żądaniu, a następnie w sesji, a następnie w aplikacji.

Załóżmy, że inny kod na stronie JSP ustawia atrybut name w zakresie strony. Ale chcesz uzyskać dostęp do nazwy w żądaniu: musisz użyć requestScope.

Załóżmy, że sesja może mieć atrybut name. Nie użycie requestScope.name zwróci nazwę o zakresie sesji, jeśli strona JSP zapomniała ustawić atrybut nazwy w zakresie żądania.

Jeśli celem fragmentu JSP jest uzyskanie dostępu do elementu ustawionego w dołączonej stronie JSP, może ten fragment JSP powinien być znacznikiem JSP, a nazwa powinna zostać przekazana jako argument do tego znacznika.

1

W ramach moich badań (jestem również nowy dla JSTL) prośba zakres można ustawić wartości do żądania strony od strony reagowania na przykład założyć, że mamy stronę o nazwie index.jsp a jego działanie jest strona index_action.jsp

jeśli my, zbiór wartości na stronie akcji

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

(// i stworzył nme zmienna i ustawić jej wartość jako Janaka aravinda. iz powrotem, aby przeładować stronę życzenie (index.jsp))

Teraz możemy nazwać nme w index.jspnme zmiennej jak postępować wartość żądania

<c:out value="${nme}"/> 
Powiązane problemy