返回介绍

8.6 引用静态属性和静态方法

发布于 2025-04-22 20:10:01 字数 1843 浏览 0 评论 0 收藏

您可以引用在任何 Java 类中定义的静态字段和方法。 但是,在可以在 JSP 页面中引用静态字段或方法之前,必须使用 page 伪指令导入类或类包。 java.lang 包是一个例外,因为它是自动导入的。

例如,以下 page 指令导入 java.time 包。

<%@page import="java.time.*"%>

或者,你可以导入单个类,例如

<%@page import="java.time.LocalDate"%>

限制可以引用 LocalDate 类的静态方法:now 方法,如下:

Today is ${LocalDate.now()}

在本章后面的章节中,我们将学习如何格式化日期。

如下是引用类的静态成员和静态字段的另一个例子。

<p>
  &radic; <span style =“text-decoration:overline;”>&nbsp; 36&nbsp; </ span> 
  = $ {Math.sqrt(36)}
</p>
<p>
  &pi; = ${Math.PI} 
</p>

Math 是 java.lang 包下类,无需额外的导入。图 8.1 展示了以上代码的 JSP 页面效果。

图片 2

图 8.1 引用类静态成员

此外,还有一种导入包的方法,是在 ServletContextlistener 中以编程方式导入。清单 8.1 显示了一个监听器,它导入两个包 java.time 和 java.util。

清单 8.1 编程导入类型

package listener;
import javax.el.ELContextEvent;
import javax.servlet.ServletContextEvent; 
import javax.servlet.ServletContextListener; 
import javax.servlet.annotation.WebListener; 
import javax.servlet.jsp.JspFactory; 

@WebListener
public class ELImportListener implements ServletContextListener { 

  @Override
  public void contextInitialized(ServletContextEvent event) { 
    JspFactory.getDefaultFactory().getJspApplicationContext( 
        event.getServletContext()).addELContextListener( 
            (ELContextEvent e) -> { 
               e.getELContext().getImportHandler().
               importPackage("java.time");
               e.getELContext().getImportHandler(). 
               importPackage("java.util"); 
            }); 
  }

  @Override
  public void contextDestroyed(ServletContextEvent event) {
  } 
}

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。