2012-04-14 2 views
0

У меня есть объект inputText в JSF, допустим, inputText_A, и значение привязывается к членной переменной объекта Session Bean. Это тип двойной.Как передать значение из сеанса в JSF inputText?

<h:inputText value="#{theBean.theMemberVar}" /> 

И этот inputText_A был инициализирован 0.0. Когда TheBean выполняет вычисление, значение будет обновляться обратно на Bean.theMemberVar. Я отследил его обратно в консоли отладки, и значение было обновлено до моего ожидаемого значения. Но inputText_A на экране все еще показывает исходное значение, которое равно 0.0.

Я тестировал с использованием outputText, мой ожидаемый результат показывает, но после этого он становится доступен только на экране. Я хочу, чтобы он редактировался после того, как мой ожидаемый результат заполнил inputText_A, поэтому я выбираю объект inputText.

Я понимаю, что когда мы передаем некоторое значение из JSF в Bean, мы используем inputText, а когда какое-то значение переходит из Bean в JSF, мы используем outputText. Но теперь я хочу передать значение из Bean в JSF, используя inputText. Могу ли я узнать, можно ли это сделать?

ответ

2

Вполне нормально отображать некоторое обновленное значение через h:inputText (если вам нужна такая функциональность). Для переменной bean-компонента вам нужно иметь только getter и setter.

Так, например:

private String text; 

// here you will update the input text - in your case method which does calculations 
    public void changeText(){ 
     ... 
     text = "updated"; 
    } 

    public String getText() { 
     return text; 
    } 

    public void setText(String text) { 
     this.text = text; 
    } 

И ваш facelet (.xhtml):

 <h:inputText value="#{dummyBean.text}" /> 
     <h:commandButton value="Change text" actionListener="#{dummyBean.changeText}" /> 

Ваш inputText будет обновляться по нажатию кнопки.

Другое дело, если вы обновляете свой контент через Ajax. Затем вам нужно пересборку parent component из inputText или form в inputText:

<h:commandButton immediate="true" value="Change text"> 
     <f:ajax event="click" render=":formID" listener="#{dummyBean.changeText}"/> 
    </h:commandButton> 
Смежные вопросы