我试图在我的JSP文件中使用EL在Tomcat 8容器中访问我的java文件中的静态字段,但是收到错误(如下所示)。
Tomcat8是否支持EL 3.0?如果是,那么我错过了什么?
AppConstants.java
package com.study.el;
public final class AppConstants {
public static final String NAME = "abc";
private AppConstants() {
}
}
AppContextListener.java
package com.study.el;
@WebListener
public class AppContextListener implements ServletContextListener {
private ServletContext appContext;
@Override
public void contextInitialized(ServletContextEvent event) {
JspFactory.getDefaultFactory().getJspApplicationContext(event.getServletContext()).addELContextListener(new ELContextListener() {
@Override
public void contextCreated(ELContextEvent event) {
event.getELContext().getImportHandler().importClass("com.study.el.AppConstants");
}
});
}
@Override
public void contextDestroyed(ServletContextEvent contextEvent) {
//nothing to implement
}
}
的index.jsp
<!DOCTYPE html>
<html>
<head>
<title>Start Page</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<h1>Hello World!</h1>
<h1>Hello ${AppConstants.NAME}</h1>
</body>
</html>
错误日志:
javax.el.ELException: The class [com.study.el.AppConstants] could not be imported as it could not be found
javax.el.ImportHandler.importClass(ImportHandler.java:114)
答案 0 :(得分:0)
但是如果你试图改变这个语句&#34;私有ServletContext appContext;&#34;到&#34; public ServletContext appContext;&#34;
答案 1 :(得分:0)
现在你尝试导入你的课程:
<%@ page import=”your_package.your_class_name” %>