2013-10-01 3 views
7

Переменная JSTL находится в области действия запроса в JSPКогда использовать requestScope в jstl?

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

Эта переменная доступны из JSPF, включенных в этот JSP. Итак, есть ли разница в доступе к переменной этими двумя способами?

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

Когда использовать запросScope?

ответ

20

Вы используете requestScope, когда вы совершенно не хотите, чтобы ваш объект поступал из запроса, а не из области страницы, сеанса или приложения. Inded, используя ${name}, будет искать атрибут name на странице, затем в запросе, затем в сеансе, затем в приложении.

Предположим, что какой-либо другой код в JSP задал атрибут name в области страницы. Но вы хотите получить доступ к имени в запросе: вы вынуждены использовать requestScope.

Предположим, что сессия может иметь атрибут name. Не использовать requestScope.name будет возвращать имя сеанса, если JSP забыл установить атрибут name в области запроса.

Если цель фрагмента JSP заключается в доступе к чему-либо, установленному в охватывающем JSP, возможно, этот фрагмент JSP должен быть JSP-тегом, и вы должны передать это имя в качестве аргумента для этого тега.

1

В моем исследовании (Я также новый для JSTL), запрос сфера может установить значения для запроса страницы из страницы ответа, например, предположим, что у нас есть страница под названием index.jsp и его страница действия index_action.jsp

если мы, установленные значения на странице действия

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

(// Я создал nme переменную и установите его значение в Janaka aravinda. и обратно, чтобы перезагрузить страницу запроса (index.jsp))

Теперь мы можем назвать nme в index.jspnme переменной, как следовать значение запроса

<c:out value="${nme}"/> 
Смежные вопросы