<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。我该如何支持bean值当我单击命令改变。 当我点击按钮两次,它就起作用。它用于当我使用a4j:commandButton罚款。使用辅助bean值在JavaScript
我已经使用的onComplete。这还不够吗? – kinkajou
渲染视图时渲染'oncomplete'。那是你测试'#{test.i}'的时间。当ajax请求结束时它不会被更新。所以你需要告诉JSF把你更新后的'i'放在某个地方(也许让它呈现一个你可以从'oncomplete'函数中读取的隐藏输入)。 – mabi
如何实时更改。我用richfaces做了这个工作正常。然后当我用primefaces完成它没有工作。 – kinkajou