facescontextutil.java

来自「一个自娱自乐的demo 开发环境 apache-tomcat-6.0.16」· Java 代码 · 共 118 行

JAVA
118
字号
package com.hb.base.util;

import java.util.Map;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;

/**
 * @author 何 貝
 * 
 * JSF 上下文工具类
 * 
 */
public class FacesContextUtil {
	/**
	 * 取得ViewBean
	 * 
	 * @param beanName bean名称
	 * @return ViewBean
	 */
	@SuppressWarnings("unchecked")
	public static Object getViewBean(String beanName) {
		ExternalContext externalContext = getFacesContext().getExternalContext();
		Object managedBean = null;
		// get request map.
		Map<String, Object> requestMap = externalContext.getRequestMap();

		// Lookup the current bean instance in the request scope.
		managedBean = requestMap.get(beanName);
		if (managedBean != null) {
			return managedBean;
		}

		// Bean is not in the request scope. Get the session map then.
		Map<String, Object> sessionMap = externalContext.getSessionMap();
		// Lookup the current bean instance in the session scope.
		managedBean = sessionMap.get(beanName);

		if (managedBean != null) {
			return managedBean;
		}

		// Bean is also not in the session scope. Get the application map then.
		Map<String, Object> applicationMap = externalContext.getApplicationMap();

		// Lookup the current bean instance in the application scope.
		managedBean = applicationMap.get(beanName);

		if (managedBean != null) {
			return managedBean;
		}

		// Create ManagedBean
		// JSF1.2 Implements

		return getFacesContext().getELContext().getELResolver().getValue(getFacesContext().getELContext(),
				null, beanName);

		// JSF1.1 Implements
		// return
		// getFacesContext().getApplication().getVariableResolver().resolveVariable(getFacesContext(),
		// beanName);
	}

	/**
	 * 取得 FacesContext
	 * 
	 * @return FacesContext
	 */
	public static FacesContext getFacesContext() {
		FacesContext facesContext = FacesContext.getCurrentInstance();

		return facesContext;
	}

	/**
	 * 取得 RequestParameterMap
	 * 
	 * @return RequestParameterMap
	 */
	@SuppressWarnings("unchecked")
	public static Map getRequestParameterMap() {
		return getFacesContext().getExternalContext().getRequestParameterMap();
	}

	/**
	 * 取得 HttpSession
	 * 
	 * @return HttpSession
	 */
	public static HttpSession getSession() {
		HttpSession session = (HttpSession) getFacesContext().getExternalContext().getSession(false);
		return session;
	}

	/**
	 * 取得 HttpServletRequest
	 * 
	 * @return HttpServletRequest
	 */
	public static HttpServletRequest getRequest() {
		HttpServletRequest request = (HttpServletRequest) getFacesContext().getExternalContext().getRequest();
		return request;
	}

	/**
	 * 取得根目录路径
	 * 
	 * @return 根目录路径
	 */
	public static String getRealPath() {
		return ((ServletContext) getFacesContext().getExternalContext().getContext()).getRealPath("");
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?