springfacesutil.java

来自「在JSF的faces-config.xml中及Spring的配置文件中查找bea」· Java 代码 · 共 61 行

JAVA
61
字号
package cn.yuma.houseinfo.util;import javax.faces.FactoryFinder;import javax.faces.application.Application;import javax.faces.application.ApplicationFactory;import javax.faces.context.FacesContext;import javax.faces.el.ValueBinding;import javax.servlet.ServletContext;import org.springframework.context.ApplicationContext;import org.springframework.web.context.support.WebApplicationContextUtils;/** * Spring与JSF BEAN查找工具 *  * @author liyong * */public final class SpringFacesUtil {	public SpringFacesUtil() {	  }	  /**	   * 从Spring中查找bean.	   * @param beanname String	   * @return Object	   */	  public static Object findBean(String beanname) {	    ServletContext context = (ServletContext) FacesContext.getCurrentInstance().	        getExternalContext().getContext();	    ApplicationContext appctx = WebApplicationContextUtils.	        getRequiredWebApplicationContext(context);	    return appctx.getBean(beanname);	  }	  /**	   * 从JSF中查找bean.	   * @param beanname String	   * @return Object	   */	  public static Object lookupBean(String beanname) {	    Object obj = getValueBinding(getJsfEl(beanname)).getValue(FacesContext.	        getCurrentInstance());	    return obj;	  }	 	  private static ValueBinding getValueBinding(String el) {	    return getApplication().createValueBinding(el);	  }	 	  private static Application getApplication() {	    ApplicationFactory appFactory = (ApplicationFactory) FactoryFinder.	        getFactory(FactoryFinder.APPLICATION_FACTORY);	    //FactoryFinder.FACES_CONTEXT_FACTORY	    //FactoryFinder.RENDER_KIT_FACTORY	    return appFactory.getApplication();	  }	 	  private static String getJsfEl(String value) {	    return "#{" + value + "}";	  }}

⌨️ 快捷键说明

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