Bom dia Pessoal,
Estou com uma dúvida na segunte situação:
Tenho minha página JSF com um form de cadastro:
<h:form id="formCadastroSetor">
<p:dialog resizable="false" modal="true" draggable="false" closable="false" position="center"
header="..::: Novo Modelo - [ * Campo obrigatório ]" widgetVar="dialogCadSetor">
<h:panelGrid id="gradeSetor" columns="1" style="width:650px;">
<p:fieldset>
<h:panelGrid columns="4">
<h:outputLabel value="Nome:"/><h:outputLabel value="*" style="color:red;"/>
<p:inputText id="idNome" maxlength="100" style="width:300px;" required="true"
requiredMessage="Campo Obrigatório" value="#{setor.facade.setor.nome}" />
<p:message for="idNome"/>
<h:outputLabel value="Descrição:"/><h:outputLabel value="*" style="color:red;"/>
<p:inputText id="idDescricao" maxlength="255" style="width:300px;" required="true"
requiredMessage="Campo Obrigatório" value="#{setor.facade.setor.descricao}" />
<p:message for="idDescricao"/>
</h:panelGrid>
</p:fieldset>
</h:panelGrid>
<p:commandButton value="Salvar" icon="ui-icon-disk" actionListener="#{setor.saveSetor}"
update=":formTabelaSetor:tabelaSetor :formCadastroSetor:gradeSetor :formMensage">
<f:setPropertyActionListener target="#{setor.facade.setor}" value="#{null}"/>
</p:commandButton>
<p:commandButton value="Sair" icon="ui-icon-close" oncomplete="dialogCadSetor.hide()"/>
</p:dialog>
</h:form>
Bean:
@Named(value="setor")
@SessionScoped
public class SetorBean {
@Inject private SetorFacade facade;
public SetorFacade getFacade() {
return facade;
}
public void saveSetor(ActionEvent event) {
getFacade().save();
}
}
Facade:
public class SetorFacade {
@Inject private Setor setor;
@Inject private Session session;
public Setor getSetor() {
return setor;
}
public void setSetor(Setor setor) {
this.setor = setor;
}
public void save() {
if(setor != null) {
try {
GenericDAO<Setor> dao = new GenericDAO<Setor>(session);
dao.save(getSetor());
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_INFO, "Setor salvo com sucesso!", ""));
} catch (Exception e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(
FacesMessage.SEVERITY_ERROR, " Problema ao salvar setor!", ""));
}
}
}
}
O que acontece é que preciso setar o meu objeto setor como null para limpar meu formulário, mais ao tentar inserir um outro setor ele me retorno o setor null,
eu coloquei meu facade como scope de request, deu certo, mas faço mais duas operaçẽs neste facade que é de update e delete e usando como scope de request
elenão consegui fazer estas operações pois é feita duas requisiçoes e meu objeto selecionado fica null.
Bom o que eu queria ver, era como eu falaria para o weld injetar este objeto quando estevesse null.