Получение значения HTML с помощью JSF - PullRequest
2 голосов
/ 03 января 2011

У меня есть JavaScript, который редактирует скрытое поле на моей странице jsf:

<h:inputHidden id="data"  value="" />

, и когда я нажимаю «Отправить», я хотел бы получить новое значение этого поля HTML, которое было измененоJavaScriptЯ посмотрел на

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("data");

Но это, кажется, работает, только если оно передано как <f:param/>.Есть ли способ, которым я могу получить значение посредством вызова bean-компонента?

1 Ответ

1 голос
/ 03 января 2011

Это имя сгенерированного поля ввода HTML, которое отправляется в качестве параметра запроса обычным способом HTTP / HTML.Помните: JSF работает на веб-сервере, создает HTML / CSS / JS, веб-сервер отправляет его по HTTP веб-браузеру, веб-браузер получает HTML / CSS / JS и отображает / применяет / выполняет его.Щелкните правой кнопкой мыши страницу в браузере, выберите Просмотр источника , найдите сгенерированный элемент ввода HTML, и вы увидите нечто похожее на это:

<input type="hidden" id="formid:data" name="formid:data" />

, где formid - это идентификатор родителя <form> как сгенерировано JSF <h:form>.В соответствии со спецификацией HTML входные значения отправляются в виде пар имя = значение в параметрах запроса.

Итак, для вышеприведенного случая вы должны использовать

data = requestParameterMap.get("formid:data");

Однако,вы также можете просто привязать его к свойству bean-компонента.

<h:inputHidden value="#{bean.data}" />

Таким образом, он будет просто доступен как свойство data в методе действия bean-компонента без необходимости суетиться с параметрами запроса на низком уровнеспособ.

...