<h:form prependId="false" id="vt_sel_form">
<p:panelGrid styleClass="center" columns="2">
<p:commandButton value="GO" oncomplete="alert(#{test.i})" actionListener="#{test.testfxn()}" update="@this"/>
</p:panelGrid>
</h:form>
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ViewScoped
@ManagedBean(name = "test")
public class TestClass implements Serializable {
int i ;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
public void testfxn() {
setI(i++);
//i=i+10;
System.out.println("i" + i);
}
}
Здесь оповещения (# {test.i}) всегда отображая 0. Как я получить поддержку значения боба, который изменяется, когда я нажимаю CommandButton. Он работает, когда я дважды нажимаю кнопку. Он работал нормально, когда использовал a4j: commandButton.Использование резервного значения боба в JavaScript
Я использовал OnComplete. Разве этого недостаточно? – kinkajou
'oncomplete' отображается при визуализации представления. Это время, когда оценивается ваш '# {test.i}'. Он не будет обновляться после завершения запроса ajax. Поэтому вам нужно сообщить JSF о том, что вы где-то обновили 'i' (возможно, он отображает скрытый ввод, который вы можете прочитать из функции« oncomplete »). – mabi
Как мне изменить в реальном времени. Я сделал это с richfaces, он работал нормально. Тогда, когда я сделал это с помощью правлений, это не сработало. – kinkajou