Actualizar componente primefaces desde codigo Java
PrimeFaces.current().ajax().update("nombre_componente");
Informacion
codigo del sitio de primefaces
@ManagedBean
public class RequestContextView {
private User user;
@PostConstruct
public void init() {
user = new User();
if(!FacesContext.getCurrentInstance().isPostback()) {
PrimeFaces.current().executeScript("alert('This onload script is added from backing bean.')");
}
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void save() {
PrimeFaces.current().ajax().addCallbackParam("saved", true); //basic parameter
PrimeFaces.current().ajax().addCallbackParam("user", user); //pojo as json
//execute javascript oncomplete
PrimeFaces.current().executeScript("PrimeFaces.info('Hello from the Backing Bean');");
//update panel
PrimeFaces.current().ajax().update("form:panel");
//scroll to panel
PrimeFaces.current().scrollTo("form:panel");
//add facesmessage
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Success", "Success"));
}
}
.xhtml
<style type="text/css">
.ui-log {
left: 600px;
top: 100px;
}
</style>
<script type="text/javascript">
function handleComplete(xhr, status, args) {
if(args.validationFailed) {
PrimeFaces.debug("Validation Failed");
}
else {
PrimeFaces.debug("Save:" + args.saved);
PrimeFaces.debug("FirstName: " + args.user.firstname + ", Lastname: " + args.user.lastname);
}
}
</script>
<h:form id="form">
<p:panel id="panel" header="New User" style="margin-bottom:10px;">
<p:messages />
<h:panelGrid columns="2" cellpadding="5">
<p:outputLabel for="firstname" value="Firstname:" />
<p:inputText id="firstname" value="#{requestContextView.user.firstname}" required="true"/>
<p:outputLabel for="surname" value="Lastname:" />
<p:inputText id="surname" value="#{requestContextView.user.lastname}" required="true"/>
</h:panelGrid>
</p:panel>
<p:commandButton value="Save" action="#{requestContextView.save}" oncomplete="handleComplete(xhr, status, args)" />
<p:log />
</h:form>
Last updated