JSF J'ai une page JSF avec deux formesformes multiples avec 2,2
J'utilise JSF 2.2 avec MyFaces mise en œuvre
Afficher les prochains exemples (xhtml et ManagedBean)
Lorsque je presse ajouter l'article (doNew), l'entrée affiche la valeur correcte; après avoir appuyé sur le bouton Retour (doCancel), et appuyez à nouveau sur Item (doNew).
La valeur de l'entrée exampleBean.newBean.descripcion affiche l'ancienne description lorsque j'ai appuyé sur la première. Mais la sortie # {exampleBean.newBean.descripcion} » indique toujours la valeur correcte. Si j'utilise une seule forme la question fonctionne bien acheter je dois comprendre pourquoi ne fonctionne pas avec deux formes?
Cordialement,
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
<h:body>
<h:form styleClass="horizontal-form form-search" id="form1">
<h:messages></h:messages>
<h:commandButton styleClass="btn btn-default btn-success"
value="Add Item" action="#{exampleBean.doNew}">
</h:commandButton>
</h:form>
<h:form id="form2">
<h:messages></h:messages>
<h:outputText value="#{exampleBean.newBean.descripcion}"></h:outputText>
<h:inputText value="#{exampleBean.newBean.descripcion}" id="input1234"></h:inputText>
<h:commandButton styleClass="btn btn-default btn-default"
value="Back" action="#{exampleBean.doCancel}"
immediate="true">
</h:commandButton>
</h:form>
Et mon ManagedBean est
@ManagedBean(name = "exampleBean")
@ViewScoped
public class ExampleManagedBean {
private Object newBean;
protected String panelMode = null;
public ExampleManagedBean() {
// TODO Auto-generated constructor stub
panelMode = "default";
newBean = new Concepto();
}
public String doCancel() {
panelMode = "default";
return null;
}
public String doNew() {
panelMode = "edit";
Concepto c1 = new Concepto();
c1.setDescripcion("descripcion " + System.currentTimeMillis());
newBean = c1;
return null;
}
public Object getNewBean() {
return newBean;
}
public void setNewBean(Object newBean) {
this.newBean = newBean;
}
public String getPanelMode() {
return panelMode;
}
public void setPanelMode(String panelMode) {
this.panelMode = panelMode;
}
}
Oui, mais la valeur d'entrée est extraite de l'action. pourquoi travaille la première fois? et pourquoi le texte de sortie montre correctement? la sortie et l'entrée des rendus sont différentes pour le même objet. – jrey
S'il vous plaît essayez de tester sans immédiat = "true" Et vérifiez si votre valeur correcte dans votre managedBean lorsque vous soumettez par Button Back – user3489875