Buenas pessoal, estou com um problemas a dias e nao consigo resolver, ja fiz de tudo aqui, acabou minhas idéias rsrsrs, ja pesquisei bastante tbm.
Seguinte tenho alguns inputs em tela, uns em um dialog e outro de busca, coisas simples.
Porém dentro do meu ManagedBean, sempre fica null os valores, o que pode ser?
segue os fontes:
<!DOCTYPE html>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
template="./Base.xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://java.sun.com/jsf/core">
<ui:define name="head">
<style>
label{width: 60px;}
</style>
<script type="text/javascript">
function sucesso(xhr, status, args) {
if (args.sucesso == true) {
dialogNovo.hide();
}
}
</script>
</ui:define>
<ui:define name="content">
<h:form id="frmDialog" prependId="true" enctype="multipart/form-data" acceptcharset="ISO-8859-1">
<p:growl id="growl"/>
<div style="width: 600px; height: 500px; margin: 0 auto;">
<div style="margin: 0px 0px 5px 0px; float: left; position: relative; bottom: -14px;">
<p:commandButton value="Novo" icon="ui-icon-plus" ajax="true" immediate="true" onclick="dialogNovo.show();" style="float: right;"/>
</div>
<div style="margin: 0px 0px 5px 0px; text-align: right;">
<p:inputText id="search" style="width: 250px" value="#{estadoController.term}" onkeypress="if (event.keyCode == 13) { document.getElementById('frmDialog:btnSearch').click(); return false; }"/>
<p:watermark for="search" value="Informe uma palavra-chave" />
<p:commandLink id="btnSearch" update="tableList" ajax="true" action="#{estadoController.findWithTerm}" process="@this search">
<p:graphicImage value="resources/images/ic_search.png" style="padding-left: 4px; position: relative;top: 11px;"/>
</p:commandLink>
</div>
<p:dataTable id="tableList" style="width: 600px;" value="#{estadoController.list}" var="item" emptyMessage="Nenhum estado cadastrado" styleClass="table" rows="10" paginator="true" paginatorPosition="bottom" paginatorAlwaysVisible="false">
<p:column headerText="Código">
<h:outputText value="#{item.idEstado}"/>
</p:column>
<p:column headerText="Nome">
<h:outputText value="#{item.nomeEstado}"/>
</p:column>
<p:column headerText="Sigla">
<h:outputText value="#{item.siglaEstado}"/>
</p:column>
<p:column headerText="IBGE">
<h:outputText value="#{item.ibgeEstado}"/>
</p:column>
<p:column headerText="Pais">
<h:outputText value="#{item.pais.nomePais}"/>
</p:column>
<p:column>
<center>
<p:commandButton icon="ui-icon-pencil" update=":frmDialog:painel" title="Editar estado" oncomplete="dialogNovo.show()" process="@this" immediate="true">
<f:setPropertyActionListener target="#{estadoController.selectedBean}" value="#{item}"/>
</p:commandButton>
<p:commandButton icon="ui-icon-trash" title="Deletar estado" oncomplete="deletaEstado.show()" immediate="true">
<f:setPropertyActionListener target="#{estadoController.selectedBean}" value="#{item}"/>
<p:confirmDialog id="deletaEstado" message="Tem certeza que deseja excluir?" header="Excluir" severity="alert" widgetVar="deletaEstado" >
<p:commandButton value="Sim" onsuccess="deletaEstado.hide()" update="tableList :frmDialog:growl" immediate="true" actionListener="#{estadoController.remove()}"/>
<p:commandButton value="Não" onclick="deletaEstado.hide();" type="button" />
</p:confirmDialog>
</p:commandButton>
</center>
</p:column>
</p:dataTable>
</div>
<p:dialog widgetVar="dialogNovo" modal="true" width="370" height="245" header="Estado" id="dialogNovo" resizable="false" style="overflow: hidden;">
<h:panelGroup id="painel" layout="block">
<div class="ui-dialog-titulo">
<h:outputText style="font-size: 18px; color: #AFAFAF" value="Cadastro de Estado"/>
</div>
<ul class="ui-dialog-body">
<li class="last">
<label>Estado:</label>
<p:inputText id="estadoNome" value="#{estadoController.selectedBean.nomeEstado}" required="true" requiredMessage="Informe um nome para o estado"></p:inputText>
</li>
<li class="last">
<label>Sigla:</label>
<p:inputText id="sigla" value="#{estadoController.selectedBean.siglaEstado}" required="true" requiredMessage="teste"></p:inputText>
</li>
<li class="last">
<label>Cod. IBGE:</label>
<p:inputText id="ibge" value="#{estadoController.selectedBean.ibgeEstado}"></p:inputText>
</li>
<li>
<label>Pais:</label>
<p:selectOneMenu converter="entityConverter">
<f:selectItem itemLabel="Selecione uma opção" itemValue="" />
<f:selectItems value="#{estadoController.list}" var="p" itemValue="#{p}" itemLabel="#{p.nomePais}"/>
</p:selectOneMenu>
</li>
</ul>
<div class="ui-dialog-button">
<p:commandButton value="Salvar" icon="ui-icon-disk" update="painel tableList growl" ajax="true" action="#{estadoController.add}" oncomplete="sucesso(xhr, status, args)"/>
<p:commandButton value="Limpar" icon="ui-icon-closethick" onclick="form.reset();"/>
</div>
</h:panelGroup>
</p:dialog>
<p:ajaxStatus style="width:64px;height:64px;position:fixed;right:5px;bottom:5px">
<f:facet name="start">
<p:graphicImage value="resources/images/loanding.gif"></p:graphicImage>
</f:facet>
<f:facet name="complete">
<h:outputText value="" />
</f:facet>
</p:ajaxStatus>
</h:form>
</ui:define>
</ui:composition>
package br.winddoc.controller;
import java.util.ArrayList;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.faces.bean.ManagedBean;
import javax.inject.Named;
import javax.servlet.http.HttpServletRequest;
import br.winddoc.dao.EstadoDAO;
import br.winddoc.dao.IEstadoDAO;
import br.winddoc.model.Estado;
@ManagedBean
@SessionScoped
public class EstadoController {
private static final long serialVersionUID = 1L;
private IEstadoDAO dao;
private Estado estado;
private HttpServletRequest request = null;
private List<Estado> list = new ArrayList<Estado>(0);
private String term = "";
public EstadoController() {
estado = new Estado();
this.getDAO();
}
private void getDAO() {
dao = new EstadoDAO();
}
public void add() {
this.getDAO();
System.out.println("AQUI, fiz para testar, mais fica NULL.. "
+ estado.getNomeEstado());
}
public void remove() {
}
public void findWithTerm() {//AQUI também o term fica NULL
if (term != null && !term.equals("")) {
list = this.dao.findWithTerm(term);
} else {
list = this.dao.findAll();
}
}
/**
* ************ GETER AND SETERS **********************
*/
public List<Estado> getList() {
return list;
}
public void setList(List<Estado> estadoList) {
this.list = estadoList;
}
public String getTerm() {
return term;
}
public void setTerm(String term) {
this.term = term;
}
public Estado getEstado() {
return estado;
}
public void setEstado(Estado estado) {
this.estado = estado;
}
}
obrigado.