Galera,
A situação é a seguinte:
notaFiscal.xhtml
<p:autoComplete value="#{notaFiscalBean.material}" var="material"
completeMethod="#{notaFiscalBean.completarMaterial}"
itemLabel="#{material.descricao}" itemValue="#{material}"
converter="materialConverter"
selectListener="#{notaFiscalBean.atualizarLista}"
onSelectUpdate="tbItens growl @this">
</p:autoComplete>
NotaFiscalBean.java
@RequestScoped
public class NotaFiscalBean implements Serializable {
MaterialConverter.java
@FacesConverter(value="materialConverter")
public class MaterialConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent uiComponent, String string) {
// buscar bean na sessão
// HttpSession session = (HttpSession)FacesContext.getCurrentInstance().getExternalContext().getSession(true);
// NotaFiscalBean notaFiscalBean = (NotaFiscalBean)session.getAttribute("notaFiscalBean");
// buscar bean na requisição
HttpServletRequest request = (HttpServletRequest)FacesContext.getCurrentInstance().getExternalContext().getRequest();
NotaFiscalBean notaFiscalBean = (NotaFiscalBean)request.getAttribute("notaFiscalBean");
return notaFiscalBean.getMaterialDao().buscar(string);
}
O ponto que quero chegar é no Converter! Qdo procuro pelo bean “notaFiscalBean” através da requisição… Tenho um retorno nulo. Mas, caso eu altere o escopo do NotaFiscalBean para @SessionScoped e busque o bean pela sessão, HttpSession, consigo o retorno esperado, que é o bean em si!
Quero entender porque não consigo buscar o bean, pelo HttpServletRequest, se ele estiver com escopo de @RequestScoped.
Alguém consegueria me explicar?
Obrigado galera!