小编Gau*_*avS的帖子

如何使用EL 3.0引用静态变量?

我试图在我的JSF页面中获取一个静态变量.

我按照这篇文章的说明.我可以使用Primefaces扩展来获取变量,但是,在执行以下操作时,我没有在xhtml中获得任何内容.

我有一个常量文件:

public class Test {
    public static final String NAME = "EL Test";
}
Run Code Online (Sandbox Code Playgroud)

在balusC的帖子之后,我添加了一个应用程序范围的bean(但是,每次请求都会调用它):

import java.lang.reflect.Field;
import javax.annotation.PostConstruct;
import javax.el.ELContextEvent;
import javax.el.ELContextListener;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;

@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("my.package.constants.Test");
                Class<?> clazz = event.getELContext().getImportHandler().resolveClass("Test");
                for (Field field : clazz.getFields()) {
                    System.out.println(field.getName());
                }
                System.out.println("clazz = " + clazz);
                System.out.println(clazz.getPackage());
            }
        });
    }
} …
Run Code Online (Sandbox Code Playgroud)

java el primefaces jsf-2 tomcat8

1
推荐指数
3
解决办法
5962
查看次数

标签 统计

el ×1

java ×1

jsf-2 ×1

primefaces ×1

tomcat8 ×1