el java常量_如何引用EL中的常数?

EL 3.0或更高版本

如果您已经使用了JavaEE 7/EL 3.0,那么@page import还将在EL作用域中导入类常量。

这将在封面下通过以下途径进口。ImportHandler#importClass()并且可以作为${YourConstants.FOO}.

注意所有java.lang.*类已经隐式导入并可用,如下所示${Boolean.TRUE}和${Integer.MAX_VALUE}..这只需要一个更新的JavaEE 7容器服务器,因为早期版本在这方面有错误。例如,GlassFish 4.0和Tomcat 8.0.0-1x失败,但GlassFish 4.1+和Tomcat 8.0.2x+有效。你必须确保你的web.xml声明符合服务器支持的最新servlet版本。因此web.xml它声明符合Servlet 2.5或更高版本,Servlet3.0+的任何特性都无法工作。

还请注意,此工具仅在JSP中可用,而在Facelets中不可用。在JSF+Facelets的情况下,最好的选择是使用OmniFaces详情如下:

或添加EL上下文侦听器,该侦听器调用ImportHandler#importClass()详情如下:@ManagedBean(eager=true)@ApplicationScopedpublic 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");

}

});

}}

El 2.2或以上

这是不可能在EL 2.2及以上。有几种选择:把他们放进Map你把它放进了应用程序范围。在EL中,可以通过以下方式访问map值:${map.key}或${map['key.with.dots']}.

YourConstants"

var="constants" />

这样,它们就可以按照通常的Javabean方式通过${constants.FOO}.

使用Javaranch的CCC 在最底层的某个地方这篇文章.

var="constants" />

这样,它们就可以按照通常的Javabean方式通过${constants.FOO}也是。

这样,它们就可以按照通常的Javabean方式通过#{YourConstants.FOO}也是。

创建一个包装类,通过Javabean样式的getter方法返回它们。

创建一个自定义EL解析器,它首先扫描常量的存在,如果不存在,则委托给默认解析器,否则返回常量值。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值