HTTP Status 500 – Internal Server Error
Type Exception Report
Message An exception occurred processing [/index.jsp] at line [31]
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
org.apache.jasper.JasperException: An exception occurred processing [/index.jsp]
Root Cause
java.lang.NullPointerException
org.apache.struts2.views.jsp.TagUtils.getStack(TagUtils.java:40)
org.apache.struts2.views.jsp.StrutsBodyTagSupport.getStack(StrutsBodyTagSupport.java:40)
org.apache.struts2.views.jsp.ComponentTagSupport.doStartTag(ComponentTagSupport.java:48)
org.apache.jsp.index_jsp._jspx_meth_s_005fa_005f0(index_jsp.java:300)
org.apache.jsp.index_jsp._jspService(index_jsp.java:173)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:466)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:379)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:327)
javax.servlet.http.HttpServlet.service(HttpServlet.java:623)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
注意根本原因的完整堆栈跟踪可在服务器日志中找到。 Apache Tomcat/9.0.80
我无法确切地找到为什么会出现空指针异常。在
index.jsp
文件中,<s:a>
标签无法正常工作,它显示
org.apache.jasper.JasperException:处理时发生异常。
如何让这个标签工作,这样就不会出现空指针异常。
在 JSP 中您已经使用了 Struts 标签。他们需要使用Struts过滤器来运行。也不要使用对 JSP 的直接访问。您正在使用 Tomcat 作为应用程序服务器。默认情况下,它被配置为使用
index.jsp
作为欢迎页面,并由 Tomcat 中的默认 servlet 提供服务。这里甚至没有涉及Struts。因此,Struts 标签将无法工作。
在幕后,如果您查看 stacktrace,您会看到
<s:a>
标签正在尝试从操作上下文中获取值堆栈,但它是 null
,因为 Struts 过滤器不提供请求。
您需要的是学习Struts应用程序的基础知识。这里是来自 Struts 入门文档的示例教程。 如何创建 Struts 2 Web 应用程序。特别是第 5 节,您可以看到 Struts 过滤器配置。