Передача значения inputtext в качестве параметра

Я хочу передать пользовательский ввод на другую страницу в качестве параметра. Вот мой код:

 <h:form>
     <h:inputText value="#{indexBean.word}"/>
     <h:commandLink value="Ara" action="word.xhtml">
          <f:param value="#{indexBean.word}" name="word"/>
     </h:commandLink>
</h:form>

Ну, это не работает. Я могу прочитать значение inputtext в своем компоненте поддержки, но не могу отправить его в word.xhtml.

Вот еще один подход, который я попробовал:

<h:form>
     <h:inputText binding="#{indexBean.textInput}"/>
     <h:commandLink value="Ara" action="word.xhtml">
          <f:param value="#{indexBean.textInput.value}" name="word"/>
     </h:commandLink>
</h:form>

Это тоже не работает.

Итак, что я делаю не так?

Ответы на вопрос(1)

Решение Вопроса

<f:param> оценивается при запросе страницы с формой, а не при отправке формы. Таким образом, остается то же значение, что и при первоначальном запросе.

Конкретное функциональное требование не совсем ясно, но конкретное функциональное требование может быть решено в основном двумя способами:

Используйте простой HTML.

<form action="word.xhtml">
    <input type="text" name="word" />
    <input type="submit" value="Ara" />
</form>

Отправить метод перенаправления в действии.

<h:form>
    <h:inputText value="#{bean.word}" />
    <h:commandButton value="Ara" action="#{bean.ara}" />
</h:form>

с участием

public String ara() {
    return "word.xhtml?faces-redirect=true&word=" + URLEncoder.encode(word, "UTF-8");
}
 ozubaba13 окт. 2012 г., 03:05
Да, это работает для меня! Я также попытался использовать flashScope, и он тоже работает. Спасибо за вашу помощь!

Ваш ответ на вопрос