Estou tendo problemas em passar meu bean da tela de listagem para a edicao:
O usuarioBean esta como request.
Debugei e na linha 16 do usuarioBean, ele realmente pega todos os dados do usuario em questao a ser editado do datatable, mas quando vai para a tela onde ha o formulario de cadastro/edicao os campos aparecem todo em branco, ou seja ele nao guarda/envia o estado, to com 2 dias nisso =( e parece ser algo simplista. :?
eis o [listagem.xhtml]
[code]
<ui:define name=“body”>
<t:saveState id=“save” value="#{usuarioBean.usuario}"/>
<h:form>
<rich:dataTable id="listagem" value="#{usuarioBean.listarUsuarios}"
var="usuario"
onRowMouseOver="this.style.backgroundColor='#F1F1F1'"
onRowMouseOut="this.style.backgroundColor='#{a4jSkin.tableBackgroundColor}'"
border="1" cellspacing="0" cellpadding="2" rows="5"
styleClass="rich-table" >
<rich:column>
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<h:outputText value="#{usuario.codigo}" />
</rich:column>
…os outros outputs…
rich:column
<f:facet name=“header”>
<h:outputText value="" />
</f:facet>
<h:commandLink action="#{usuarioBean.excluir}"
value="#{msg[‘commons.excluir’]}">
<f:setPropertyActionListener value="#{usuarioBean}" target="#{usuario}" />
</h:commandLink>
<h:commandLink action="#{usuarioBean.editar}" value="#{msg[‘commons.editar’]}">
<f:setPropertyActionListener value="#{usuarioBean}" target="#{usuario}" />
</h:commandLink>
</rich:column>
…
</ui:define>
</ui:composition>[/code]
eis o treco que interessa do [UsuarioBean.java]
[code]
public class UsuarioBean implements Serializable{
private static final long serialVersionUID = 8798812512424289176L;
/**
* Referencia para a camada de regras de negocio.
/
private UsuarioBusiness usuarioBusiness = new UsuarioBusiness();
/*
* Usuario a serusado no form.
*/
private Usuario usuario=new Usuario();
public ListDataModel getListarUsuarios() {
return usuarioBusiness.listarUsuariosBusiness();
}
public String editar(){
usuario=usuarioBusiness.getUsuarioManaged();
return "cadastrarUsuario";
}[/code]
eis o UsuarioBusiness.java
public class UsuarioBusiness {
private UsuarioDAO usuarioDao=new UsuarioDAO();
private ListDataModel model;
public Usuario getUsuarioManaged(){
Usuario usuario = (Usuario) model.getRowData();
return usuario;
}
public void excluirUsuario() {
usuarioDao.excluirUsuario(getUsuarioManaged());
}
.....
public ListDataModel listarUsuariosBusiness() {
return model = new ListDataModel (usuarioDao.listarUsuariosDAO());
}[/code]
eis o [cadastro.xhtml]
[code]<ui:composition template="/templates/common.xhtml">
<ui:define name="header">
Cadastro de Usuários
</ui:define>
<ui:define name="body">
<t:saveState id="save2" value="#{usuarioBean.usuario}"/>
<h:form id="usuarioForm">
<h:panelGrid columns="3" columnClasses="right,left,left">
<h:outputLabel for="emailInput"
value="#{msg['page.usuarios.label.email']}" />
<h:inputText id="emailInput" value="#{usuarioBean.usuario.email}"
required="true" requiredMessage="#{msg['erros.cadastro.nome']}" />
<h:message for="nomeInput" style="color: red" />
....form basico de edicao...........
<h:commandButton action="#{usuarioBean.salvar}"
value="#{msg['commons.salvar']}" />
<h:commandButton action="listarUsuarios"
value="#{msg['commons.voltar']}" immediate="true" />
</h:form>
</ui:define>
</ui:composition>
eis o [web.xml]
[code]
usuarioBean
beans.UsuarioBean
request
ah, o excluir fuciona perfeitamente.
Grato desde ja!
Abs.