2012-04-10 4 views
0

Я задавался вопросом, когда я поставил ниже код в своем JSF.Diffrence requestScope и request.getParameter?

<h:inputHidden id="patientId" value="#{requestScope['patientId']}"/> 
<%=request.getParameter("patientId") %> 

Мой поток похож One.jsf -> При нажатии на ссылку под названием резервного Bean -> От каркасного боба Navigate к Two.jsf

Я устанавливаю patientID в области запроса на One.jsf. Я могу получить доступ к нему на бэкбоне.

Сейчас на two.jsf с использованием

<%=request.getParameter("patientId") %> 

я могу получить доступ к ценностному ID, но с использованием

<h:inputHidden id="patientId" value="#{requestScope['patientId']}"/> 

Я не могу получить доступ к стоимости идентификатора. Даже в html-странице источник не показывает мне значение .... ??

Почему это?

ответ

3

Из объекта Request вы можете получить оба параметра запроса (эти параметры переданы URL-адресу в запросе GET) и атрибуты запроса (атрибуты запроса - это значения, хранящиеся в объекте запроса, и живут там до тех пор, пока запрос не завершится).

#{requestScope['patientId]}' 

соответствует request.GET/SetAttribute (...)

#{param['patiendId']} 

соответствует request.getParameter() (параметры только для чтения и не могут быть установлены).

В вашем случае вы можете получить доступ к значению в управляемом компоненте, поскольку он хранится в том же запросе, где активирован управляемый компонент. Когда запрос завершается и открывается новая страница, у вас больше не будет доступа к этому значению, потому что оно связано с предыдущим запросом.

Смежные вопросы