package br.gov.mc.cadsei.util; import java.util.Map; import javax.faces.application.Application; import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage.Severity; import javax.faces.application.ViewHandler; import javax.faces.component.UIViewRoot; import javax.faces.context.ExternalContext; import javax.faces.context.FacesContext; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.primefaces.context.RequestContext; public class JSFUtil { public static void retornarMensagem(String idComponentePagina, String mensagem) { FacesContext contexto = FacesContext.getCurrentInstance(); contexto.addMessage(idComponentePagina, new FacesMessage(mensagem)); } public static void retornarMensagem(String idComponentePagina, Severity severity, String mensagem) { FacesContext contexto = FacesContext.getCurrentInstance(); contexto.addMessage(idComponentePagina, new FacesMessage(severity, "", mensagem)); } public static RequestContext getRequestContext() { return RequestContext.getCurrentInstance(); } /** * Método que lê um parâmetro de um link ou botão passado através da TAG * <f:param>. * * @param nomeDoParametro * valor usado no atributo name da TAG "param" * @return o valor passado no envio da requisição como uma String */ public static String getParametro(String nomeDoParametro) { FacesContext context = FacesContext.getCurrentInstance(); Map map = context.getExternalContext().getRequestParameterMap(); String valor = map.get(nomeDoParametro); return valor; } /** * Método que lê um parâmetro de um link ou botão passado através da TAG * <f:param>, convertendo o valor para Long. * * @param nomeDoParametro * valor usado no atributo name da TAG "param" * @return o valor passado no envio da requisição como um Long */ public static Long getParametroLong(String nomeDoParametro) { String valor = getParametro(nomeDoParametro); Long valorLong; try { valorLong = new Long(valor); } catch (Exception e) { valorLong = null; } return valorLong; } /** * Método que lê um parâmetro de um link ou botão passado através da TAG * <f:param>, convertendo o valor para Integer. * * @param nomeDoParametro * valor usado no atributo name da TAG "param" * @return o valor passado no envio da requisição como um Integer */ public static Integer getParametroInteger(String nomeDoParametro) { String valor = getParametro(nomeDoParametro); Integer valorInt; try { valorInt = new Integer(valor); } catch (Exception e) { valorInt = null; } return valorInt; } /** * Método que pega o objeto HttpSession associado com a requisição atual. */ public static HttpSession getHttpSession() { FacesContext fc = FacesContext.getCurrentInstance(); HttpSession session = (HttpSession) fc.getExternalContext().getSession(false); return session; } /** * Método que pega o objeto HttpServletRequest associado com a requisição * atual. */ public static HttpServletRequest getServletRequest() { return (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest(); } /** * Método que pega o objeto HttpServletResponse associado com a requisição * atual. */ public static HttpServletResponse getServletResponse() { return (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse(); } /** * Método que pega o objeto ExternalContext do contexto do Faces. */ public static ExternalContext getExternalContext() { return FacesContext.getCurrentInstance().getExternalContext(); } /** * Método que pega o objeto Map do Application do contexto do Faces. */ public static Map getApplicationMap() { return FacesContext.getCurrentInstance().getExternalContext().getApplicationMap(); } /** * Método que pega o objeto Map do Session do contexto do Faces. */ public static Map getSessionMap() { return FacesContext.getCurrentInstance().getExternalContext().getSessionMap(); } /** * Método que pega o objeto Map do Request do contexto do Faces. */ public static Map getRequestMap() { return FacesContext.getCurrentInstance().getExternalContext().getRequestMap(); } /** * Método que pega o objeto Map com os Parâmetros da requisição. */ public static Map getRequestParameterMap() { return FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap(); } /** * Método que pega o objeto ServletContext do contexto do Faces. */ public static ServletContext getServletContext() { return (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext(); } public static void limparObjetosSessao(String nomeChave) { for (String chave : JSFUtil.getSessionMap().keySet()) { if (chave.contains(nomeChave)) { System.out.println("JSFUtil.limparObjetosSessao() <> " + chave); getSessionMap().put(chave, null); } } } public static void refresh() { FacesContext context = FacesContext.getCurrentInstance(); Application application = context.getApplication(); ViewHandler viewHandler = application.getViewHandler(); UIViewRoot viewRoot = viewHandler.createView(context, context.getViewRoot().getViewId()); context.setViewRoot(viewRoot); context.renderResponse(); // Optional } }