Eu estou com dificuldade em editar um registro do banco usando jsf. Não consigo fazer com que o formulário seja populado com as informações da tabela que eu quero editar e enfim, editar. O meu método está no máximo add um novo usuário a lista. Se alguém puder dar uma olhada e tiver alguma dica eu agradeço.
No Bean:
public String update() {
try {
manager.getTransaction().begin();
manager.merge(user);
manager.getTransaction().commit();
//newInstance();
return "update";
} catch (Exception e) {
e.printStackTrace();
return "falhou";
}
atualizar.xhtml
<h:form>
<!--Início tabela de lista-->
<h:dataTable value="#{usuarioBeans.usuarios}" var="user" styleClass="orders" headerClass="ordersHeader" columnClasses="oddColumn" rowClasses=" eveRow, oddRow">
<h:column>
<f:facet name="header">
Id
</f:facet>
#{user.id}
</h:column>
<h:column>
<f:facet name="header">
Nome
</f:facet>
#{user.nome}
</h:column>
<h:column>
<f:facet name="header">
Login
</f:facet>
#{user.login}
</h:column>
<h:column>
<f:facet name="header">
Senha
</f:facet>
#{user.senha}
</h:column>
<h:column>
<f:facet name="header">
Data de nascimento
</f:facet>
#{user.datanascimento}
</h:column>
<h:column>
<f:facet name="header">
Observações
</f:facet>
#{user.observacoes}
</h:column>
<h:column>
<f:facet name="header">
</f:facet>
<h:outputLink value="formAtualizar.xhtml" styleClass="doislink" >
<h:commandButton value="Atualizar" action="#{usuarioBeans.update}">
<f:param value="#{user}"></f:param>
<f:setPropertyActionListener value="#{user}" target="#{usuarioBeans.user}"/>
</h:commandButton>
</h:outputLink>
</h:column>
</h:dataTable> <!--Fim tabela de lista-->
</h:form>
formAtualizar.xhtml
<h:form>
<div id="texto">
<table>
<tr>
<h:inputHidden value="#{usuarioBeans.user.id}" />
<td align="right"><h:outputText value="Nome"></h:outputText></td>
<td><h:inputText value="#{usuarioBeans.user.nome}" id="nome" required="true" requiredMessage="Campo Nome é obrigatório"></h:inputText><br/></td>
</tr>
<tr>
<td align="right"><h:outputText value="Login"></h:outputText></td>
<td><h:inputText value="#{usuarioBeans.user.login}" id="login" required="true" requiredMessage="Campo Login é obrigatório">
<f:validateLength maximum="20"></f:validateLength>
</h:inputText><br/></td>
</tr>
<tr>
<td align="right"><h:outputText value="Senha"></h:outputText></td>
<td><h:inputSecret value="#{usuarioBeans.user.senha}" id="senha" required="true" requiredMessage="Campo Senha é obrigatório">
<f:validateLength maximum="10" minimum="6"></f:validateLength>
</h:inputSecret><br/></td>
</tr>
<tr>
<td align="right"><h:outputText value="Data de nascimento"></h:outputText></td>
<td> <h:inputText value="#{usuarioBeans.user.datanascimento}" id="datanascimento" required="true" requiredMessage="Campo Data de nascimento é obrigatório">
<f:convertDateTime pattern="dd/MM/yyyy" timeZone="#{usuarioBeans.tz}"></f:convertDateTime>
</h:inputText>
<br/></td>
</tr>
<tr>
<td align="right"><h:outputText value="Observações"></h:outputText></td>
<td> <h:inputTextarea value="#{usuarioBeans.user.observacoes}" id="observacoes"></h:inputTextarea><br/></td>
<h:messages layout="list"/>
</tr>
<tr>
<td></td>
<td align="right"><h:commandButton value="Confirmar" action="#{usuarioBeans.update}"></h:commandButton></td>
</tr>
</table>
</div><!--fim texto-->
</h:form> <!--Fim formulário de cadastro-->
Deve ter um monte de coisa errada ai no meio, peço desculpas, mas foi uma das tentativas de fazer dar certo…
