2013-10-01 3 views
7

Una variabile JSTL occupa richiesta portata in una jspQuando utilizzare requestScope in jstl?

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

Questa variabile si accede da un jspf incluso per questo jsp. Ora, c'è qualche differenza nell'accedere alla variabile in questi due modi?

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

Quando utilizzare requestScope?

risposta

20

Si utilizza requestScope quando si desidera che il proprio oggetto provenga dalla richiesta e non dalla pagina, dalla sessione o dall'ambito dell'applicazione. Inded, utilizzando ${name} si cerca un attributo name nella pagina, quindi nella richiesta, quindi nella sessione, quindi nell'applicazione.

Supponiamo che qualche altro codice nel JSP imposti un attributo name nell'ambito della pagina. Ma vuoi accedere al nome nella richiesta: sei obbligato a usare requestScope.

Diciamo che la sessione potrebbe avere un attributo name. Non utilizzare requestScope.name restituisce il nome con ambito sessione se il JSP ha dimenticato di impostare l'attributo nome nell'ambito della richiesta.

Se l'obiettivo del frammento JSP è accedere a qualcosa impostato nel JSP allegato, forse questo frammento JSP dovrebbe essere un tag JSP, e dovresti passare il nome come argomento a questo tag.

1

Entro la mia ricerca (io sono anche nuovo per JSTL), richiesta portata può impostare i valori per richiedere pagina dalla pagina di risposta, ad esempio pensare che abbiamo una pagina chiamata index.jsp e la sua pagina di azione è index_action.jsp

se noi, i valori impostati alla pagina all'azione

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

(// ho creato nme variabile e impostare il suo valore come Janaka aravinda. e torna a ricaricare richiesta di pagina (index.jsp))

Ora possiamo chiamare nme in index.jspnme variabile come seguire Richiesta valore

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