Tomcat的jsp- api.jar(至少从8.0.9起)中存在错误。根据更改日志,它已在Tomcat版本8.0.15中修复。
解决方法是,在apache-tomcat-8.0.9 \ lib文件夹中,将jsp-api.jar替换为javax.servlet.jsp- api-2.3.2-b01.jar。在eclipse中刷新项目,您将看到输出
Testing: ${Boolean.TRUE}
如:
Testing: true
为了访问java.lang
包外部的静态字段或方法,必须将这些特定的包或类添加到EL上下文中。
这是一个示例,允许您静态访问java.time
Web应用程序中所有jsp文件的包中的类:
@WebListener
public class Config implements servletcontextlistener {
@Override
public void contextInitialized(ServletContextEvent event) {
JspFactory.getDefaultFactory().getJspApplicationContext(event.getServletContext()).addELContextListener((ELContextEvent e) -> {
e.getELContext().getImportHandler().importPackage("java.time");
});
}
@Override
public void contextDestroyed(ServletContextEvent event) {}
}
现在从jsp中返回当前的LocalDate,例如:
${LocalDate.Now()}
请注意,${java.time.LocalDate.Now()}
这不起作用。