Problem to submit a form with commandButton
bagrehc Sep 19, 2006 10:09 AMHi all,
I'm new using JSF and i'm trying to create a application like the DVDStore example.
I have a form that represents an EntityBean "atdo" and a SLSB called "atdoAction" that persist this "atdo".
Well, my problem is that when a click on the button of my xhtml page to call the "atdoAction.save" method the application simply return to the same page without call the method. But when I set "immediate" parameter of commandButton to "true", then the application call the method, but the informations supplied on form isn't attributed to de "atdo" object.
My test.xhtml page:
------
#some code before
<h:form > <h:inputHidden value="#{atdo.codigo}" /> <h:panelGrid columns="2" > <h:outputText value="Codigo Cliente:"/> <h:inputText value="#{atdo.codigoCliente}" title="CodigoCliente" /> <h:outputText value="Solicitante:"/> <h:inputText value="#{atdo.solicitante}" title="Solicitante" /> <h:outputText value="Obs:"/> <h:inputTextarea value="#{atdo.obs}" title="Obs" /> </h:panelGrid> <h:commandButton type="submit" action="#{atdoAction.save}" value="Criar Atendimento"/> </h:form>
#some code after
-------
My atdoAction:
----------------------
@TransactionManagement(TransactionManagementType.BEAN) @Stateless @Name("atdoAction") public class AtendimentoBean implements AtendimentoLocal, AtendimentoRemote { @PersistenceContext(unitName="atendimento") EntityManager em; @Resource UserTransaction utx; @In AtendimentoEntity atdo; public String save() throws Exception { try { utx.begin(); em.persist(atdo); utx.commit(); } catch (Exception e) { utx.rollback(); e.printStackTrace(); throw new Exception(e.getMessage()); } return "success"; } }-----------------------------------
My "atdo"
-----------------------------------
@Name("atdo") @Scope(ScopeType.SESSION) @SequenceGenerator(name = "atendimento_seq", sequenceName = "atendimento_codigo_seq", allocationSize=1) @Entity @Table(name = "atendimento", uniqueConstraints = { @UniqueConstraint(columnNames = { "protocolo" }) }) public class AtendimentoEntity implements Atendimento{ private Integer codigo; private String obs; private String solicitante; private String codigoCliente; @Id @GeneratedValue(strategy=GenerationType.SEQUENCE, generator="atendimento_seq") @Column(name = "codigo", unique = true, nullable = false, insertable = true, updatable = true) public Integer getCodigo() { return codigo; } public void setCodigo(Integer codigo) { this.codigo = codigo; } @Column(name = "cliente", unique = false, nullable = false, insertable = true, updatable = true, length=10) public String getCodigoCliente() { return codigoCliente; } public void setCodigoCliente(String codigoCliente) { this.codigoCliente = codigoCliente; } @Lob @Column(name = "obs", unique = false, nullable = false, insertable = true, updatable = true) public String getObs() { return obs; } public void setObs(String obs) { this.obs = obs; } @Column(name = "solicitante", unique = false, nullable = false, insertable = true, updatable = true, length=50) public String getSolicitante() { return solicitante; } public void setSolicitante(String solicitante) { this.solicitante = solicitante; } }-----------------------------------
So, if someone could help me, I'd be very thanked.
Reginaldo L. Russinholi
System Analyst / Developer
Sun Certified Java Programmer