JSF читает динамический элемент ввода в управляемом бине - PullRequest
3 голосов
/ 08 ноября 2011

У меня есть довольно сложная страница JSF (мы используем JSF2 с facelet), в которой мне нужно «подключить» чистый раздел формы html (он представляет собой шаблон WYSIWYG для документа, который будет создан как Pdf позже). Очень упрощенная страница выглядит как

<h:form id="formEditDoc">
   <p:commandButton styleClass="commandButton" value="Save"
      actionListener="#{myBean.myAction}" update="masterForm:msg">
   </p:commandButton>

   <!-- some jsf controls here -->
   ....

   <!-- this is my dynamic section -->
   <input id="ft2" type="text" value="foo"/>
</h:form>

В управляемом компоненте myBean (в области запроса) у меня есть прослушиватель действий, в котором я пытаюсь получить строку "foo" следующим образом:

String text1 = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("ft2");

Но я не могу получить значение. Text1 всегда нулевой. Я даже пытался установить ajax = false для commandButton, но ничего не изменилось. Есть идеи о том, что я делаю не так?

1 Ответ

4 голосов
/ 08 ноября 2011

Это пара name=value ввода, которая отправляется в качестве параметра запроса name=value, а не id=value. Вместо этого вам нужно установить атрибут name.

<input id="ft2" name="ft2" type="text" value="foo"/>

Не связано с конкретной проблемой, я предлагаю вместо этого использовать @ManagedProperty, чтобы установить значение:

@ManagedProperty("#{param.ft2}")
private String ft2;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...