import java.util.Map;
import javax.faces.FactoryFinder;
import javax.faces.application.Application;
import javax.faces.application.ApplicationFactory;
import javax.faces.application.FacesMessage;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.el.ValueBinding;
import javax.faces.webapp.UIComponentTag;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
*
* @author Caio Paulucci
*/
public class JSFHelper {
public static ExternalContext getExternalContext() {
FacesContext facesContext = FacesContext.getCurrentInstance();
return facesContext.getExternalContext();
}
public static String getRequestParameter(String parameterName) {
Map paramMap = getExternalContext().getRequestParameterMap();
return (String) paramMap.get(parameterName);
}
public static Object getRequestAttribute(String attributeName) {
Map attrMap = getExternalContext().getRequestMap();
return attrMap.get(attributeName);
}
public static Object getSessionAttribute(String attributeName) {
Map attrMap = getExternalContext().getSessionMap();
return attrMap.get(attributeName);
}
public static void setSessionAttribute(String attributeName, Object attribute) {
Map attrMap = getExternalContext().getSessionMap();
attrMap.put(attributeName, attribute);
}
public static Object getApplicationAttribute(String attributeName) {
Map attrMap = getExternalContext().getApplicationMap();
return attrMap.get(attributeName);
}
public static void addGlobalMessage(String message) {
FacesMessage facesMessage = new FacesMessage(message);
FacesContext.getCurrentInstance().addMessage(null, facesMessage);
}
public static FacesContext getFacesContext(){
return FacesContext.getCurrentInstance();
}
/**
* Get servlet context.
*
* @return the servlet context
*/
public static ServletContext getServletContext() {
return (ServletContext) FacesContext.getCurrentInstance()
.getExternalContext().getContext();
}
/**
* Get managed bean based on the bean name.
*
* @param beanName the bean name
* @return the managed bean associated with the bean name
*/
public static Object getManagedBean(String beanName) {
Object o =
getValueBinding(getJsfEl(beanName)).getValue(FacesContext.getCurrentInstance());
return o;
}
/**
* Remove the managed bean based on the bean name.
*
* @param beanName the bean name of the managed bean to be removed
*/
public static void resetManagedBean(String beanName) {
getValueBinding(getJsfEl(beanName)).setValue(FacesContext.getCurrentInstance(),
null);
}
/**
* Store the managed bean inside the session scope.
*
* @param beanName the name of the managed bean to be stored
* @param managedBean the managed bean to be stored
*/
@SuppressWarnings("unchecked")
public static void setManagedBeanInSession(String beanName,
Object managedBean) {
FacesContext.getCurrentInstance().getExternalContext().getSessionMap()
.put(beanName, managedBean);
}
/**
* Get parameter value from request scope.
*
* @param name the name of the parameter
* @return the parameter value
*/
public static Map getRequestParameters() {
return FacesContext.getCurrentInstance().getExternalContext()
.getRequestParameterMap();
}
/**
* Add information message.
*
* @param msg the information message
*/
public static void addInfoMessage(String msg) {
addInfoMessage(null, msg);
}
/**
* Add information message to a sepcific client.
*
* @param clientId the client id
* @param msg the information message
*/
public static void addInfoMessage(String clientId, String msg) {
FacesContext.getCurrentInstance().addMessage(clientId,
new FacesMessage(FacesMessage.SEVERITY_INFO,
msg, msg));
}
/**
* Add error message.
*
* @param msg the error message
*/
public static void addErrorMessage(String msg) {
addErrorMessage(null, msg);
}
/**
* Add error message to a sepcific client.
*
* @param clientId the client id
* @param msg the error message
*/
public static void addErrorMessage(String clientId, String msg) {
FacesContext.getCurrentInstance().addMessage(clientId,
new FacesMessage(FacesMessage.SEVERITY_ERROR,
msg, msg));
}
/**
* Evaluate the integer value of a JSF expression.
*
* @param el the JSF expression
* @return the integer value associated with the JSF expression
*/
public static Integer evalInt(String el) {
if (el == null) {
return null;
}
if (UIComponentTag.isValueReference(el)) {
Object value = getElValue(el);
if (value == null) {
return null;
} else if (value instanceof Integer) {
return (Integer) value;
} else {
return new Integer(value.toString());
}
} else {
return new Integer(el);
}
}
private static Application getApplication() {
ApplicationFactory appFactory =
(ApplicationFactory) FactoryFinder.getFactory(FactoryFinder.APPLICATION_FACTORY);
return appFactory.getApplication();
}
private static ValueBinding getValueBinding(String el) {
return getApplication().createValueBinding(el);
}
public static HttpServletRequest getRequest() {
return (HttpServletRequest) FacesContext.getCurrentInstance()
.getExternalContext()
.getRequest();
}
public static HttpServletResponse getResponse() {
return (HttpServletResponse) FacesContext.getCurrentInstance()
.getExternalContext()
.getResponse();
}
public static HttpSession getSession() {
return (HttpSession) FacesContext.getCurrentInstance()
.getExternalContext()
.getSession(false);
}
private static Object getElValue(String el) {
return getValueBinding(el).getValue(FacesContext.getCurrentInstance());
}
private static String getJsfEl(String value) {
return "#{" + value + "}";
}
}
segunda-feira, 16 de agosto de 2010
JSFUtil Utilitario para manipular paginas em jsf
Bom pessoal .. deps de um LONGO tempo sem mexer em jsf .. estou voltando à ativa no jsf... mtas novidades mas .. não posso deixar de usar as coisas q eu ja implementei .. então la vai um utilitário para manipular jsf .. Abraços
Assinar:
Postar comentários (Atom)
Nenhum comentário:
Postar um comentário