Лица в ADF не могут получить параметры запроса
У меня есть веб-приложение ADF с Faces 1.2
В моем управляемом бине я пытаюсь получить доступ к параметрам почтового запроса, но всегда получаю ноль.
Это моя форма сообщения, которую я публикую в Faces:
<form name="input" action="http://127.0.01:7072/myapplication/faces/login.jspx" method="post">
<input type="hidden" name="user" id="user" value="myUserName"/>
<input type="submit" value="Submit"/>
</form>
FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("user");
FacesContext.getCurrentInstance().getExternalContext().getRequest().getParameter("user");
Но я всегда получаю ноль, и метод формы, которую я получаю: GET
, странный!
2 ответа
Когда вы делаете запрос на URL, как:
Платформа ADF ответит вам ответом "Ошибка HTTP 302 временно перемещена" и перенаправит вас на URL-адрес, например:
http://server/faces/somepage.jspx?_adf.ctrl-state=888888&_afrLoop=9999999
поэтому ваш первый запрос POST опущен, и браузер отправляет другой запрос на новый URL, который ADF возвратил в ответ, так как параметр отправки метода POST в теле запроса браузер не отправляет их в новом запросе Get, так что я думаю, что нет никакого способа для Вы должны получить параметры непосредственно в сторону страницы ADF!:(
но я думаю, что лучший способ - это создать сервлет, получить в нем параметры и поместить их в сессию, а затем перенаправить пользователя из сервлета на страницу ADF:)
Мне удалось прочитать параметры запроса, включив мои операции синтаксического анализа в сопоставления фильтров, которые использовало мое приложение.
Очень ненормально FacesContext всегда отказывался раскрывать текущие параметры, до сих пор для меня загадка, почему он так понравился, даже в его внешнем контексте...