【问题标题】:EL 3.0.: Add Constants from Class to ELContext with spring managed beanEL 3.0.:使用 Spring 托管 bean 将常量从 Class 添加到 ELContext
【发布时间】:2013-11-26 11:17:21
【问题描述】:

我尝试使用 JSF 2.2.、EL 3.0.. 让内容为我的 Web 应用程序工作。

关于这篇文章in stackoverflow,可以使用 EL 3.0 来执行此操作。像这样:

@ManagedBean(eager=true)
@ApplicationScoped
public class Config {

    @PostConstruct
    public void init() {
       FacesContext.getCurrentInstance().getApplication().addELContextListener(new ELContextListener() {
          @Override
          public void contextCreated(ELContextEvent event) {  
             event.getELContext().getImportHandler().importClass("com.example.YourConstants");
         }
       });
    }
}

如果 bean 不是由 jsf 管理,是否有任何示例如何使其工作?

【问题讨论】:

    标签: java spring jsf el jsf-2.2


    【解决方案1】:

    看看 Omnifaces importConstants。它应该为您完成所有工作。

    http://showcase.omnifaces.org/taghandlers/importConstants

    取自omnifaces示例...

    托管 Bean

    import javax.faces.bean.ManagedBean;
    import javax.faces.bean.RequestScoped;
    
    import org.omnifaces.showcase.model.ExampleEnum;
    
    @ManagedBean
    @RequestScoped
    public class ConstantsBean {
    
        public static final String CONSTANT1 = "Constant one";
        public static final String CONSTANT2 = "Constant two";
    
        private ExampleEnum exampleEnum;
    
        public ExampleEnum getExampleEnum() {
            return exampleEnum;
        }
    
        public void setExampleEnum(ExampleEnum exampleEnum) {
            this.exampleEnum = exampleEnum;
        }
    
    }
    

    示例枚举

    public enum ExampleEnum {
    
        ONE, TWO, THREE;
    
        public String getFriendlyName() {
            return name().charAt(0) + name().substring(1).toLowerCase();
        }
    
    }
    

    XHTML 中的示例用法

    <o:importConstants type="org.omnifaces.showcase.taghandlers.ConstantsBean" />
    <o:importConstants type="org.omnifaces.showcase.model.ExampleEnum" />
    
    <h3>All constants of <code>ConstantsBean</code></h3>
    <ul>
        <li>#{ConstantsBean.CONSTANT1}</li>
        <li>#{ConstantsBean.CONSTANT2}</li>
    </ul>
    
    <hr />
    
    <h3>All values of <code>ExampleEnum</code></h3>
    <ul>
        <li>#{ExampleEnum.ONE}</li>
        <li>#{ExampleEnum.TWO}</li>
        <li>#{ExampleEnum.THREE}</li>
    </ul>
    

    【讨论】:

      猜你喜欢
      • 2011-03-25
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 2015-07-07
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多