Primefaces - Dao com hibernateTemplate nulo

1 resposta
mews

Olá pessoal.

Estou desenvolvendo um tela de CRUD utilizando um dataTable e uma dialog. Ambos componentes do primefaces.
O problema é quando abro a dialog, insiro os valores e clico em salvar acaba que o hibernateTemplate do dao que está no MB está nulo.

Quando renderiza a tela para mostrar os valores na GRID ele funciona corretamente, mas quando tenta salvar um novo usuário ele diz estar nulo.

Seguem trechos do código:

.xhtml:
<p:commandButton id="basic" value="Novo" onclick="dlg.show();"
		type="button" />

	<h:form id="userForm">

		<p:dialog id="dialog" appendToBody="true" header="Novo - Usuário" widgetVar="dlg"
			dynamic="false" modal="true" height="300" width="500"
			zindex="[telefone removido]" resizable="false" closable="true">

			<h:panelGrid columns="2">
				<h:outputLabel value="Nome" />
				<h:inputText id="nomeuser" value="#{userController.user.name}"
					size="45" />
				<h:outputLabel value="Email" />
				<h:inputText id="emailuser" value="#{userController.user.email}"
					size="45" />
				<h:outputLabel value="Login" />
				<h:inputText id="loginuser" value="#{userController.user.login}"
					size="45" />
				<h:outputLabel value="Senha" />
				<h:inputText id="senhauser" value="#{userController.user.password}"
					size="45" />
				<h:outputText value="Perfil" />
				<p:selectOneMenu value="#{userController.user.role.description}"
					effect="drop">
					<f:selectItem itemLabel="Usuário" itemValue="ROLE_USER" />
					<f:selectItem itemLabel="Administrador" itemValue="ROLE_ADM" />
				</p:selectOneMenu>
			</h:panelGrid>
			<br />
			<center>
				<p:commandButton value="Gravar" action="#{userController.save}"
					update="painelConsulta" />
				<p:commandButton type="reset" value="Limpar" />
			</center>
		</p:dialog>

		<!-- Lista de usuários -->
		<p:panel id="painelConsulta" header="Lista de usuários cadastrados"
			style="text-align:left;width:100%;">

			<me:dataTable managedBean="#{userController}"
				bean="#{userController.user}" actionDelete="delete" />

		</p:panel>
	</h:form>
ManagedBean:
@ViewScoped
@ManagedBean
public class UserController implements DataTableObject, Serializable
{
	private static final long serialVersionUID = 1L;
	
	private User user = new User();
	private List<User> listUsers = new ArrayList<User>();
	private UserDAO userDAO = (UserDAO) BeanFactory.getBean("userDAO", UserDAO.class);

	private List<ColumnModel> columns;

	public UserController()
	{
		this.columns = DataTableUtils.createDynamicColumns(User.class);
		
		this.updateScreen();
	}

	public List<ColumnModel> getColumns()
	{
		return columns;
	}
	
	/**
	 * Limpa os campos input e atualiza a lista de usu&#65533;rios cadastrados
	 */
	private void updateScreen()
	{
		user = new User();
		listUsers = userDAO.loadAll();
	}

	/**
	 * Grava novo registro ou atualiza um registro
	 */
	public void save()
	{
		userDAO.saveOrUpdate(getUser());
		updateScreen();
	}

	/**
	 * Exclui um registro da tabela usuario
	 */
	public void delete()
	{
		userDAO.delete(this.getUser());
		updateScreen();
	}

	public List<User> getListUsers()
	{
		return listUsers;
	}

	public void setListaUsuarios(List<User> listUsers)
	{
		this.listUsers = listUsers;
	}

	public User getUser()
	{
		return user;
	}

	public void setUser(User user)
	{
		this.user = user;
	}

	@Override
	public List<?> getTableList()
	{
		return this.getListUsers();
	}
}

Qualquer tentativa de ajuda é bem vinda.

1 Resposta

Hebert_Coelho

Oq é o hibernateTemplate?

Onde você define?

Criado 6 de fevereiro de 2012
Ultima resposta 6 de fev. de 2012
Respostas 1
Participantes 2