为什么 NullPointerException 出现在 index.jsp 文件中,<s:a> 标签不起作用

问题描述 投票:0回答:1
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 tomcat nullpointerexception struts2 struts-tags
1个回答
1
投票

在 JSP 中您已经使用了 Struts 标签。他们需要使用Struts过滤器来运行。也不要使用对 JSP 的直接访问。您正在使用 Tomcat 作为应用程序服务器。默认情况下,它被配置为使用

index.jsp
作为欢迎页面,并由 Tomcat 中的默认 servlet 提供服务。这里甚至没有涉及Struts。因此,Struts 标签将无法工作。

在幕后,如果您查看 stacktrace,您会看到

<s:a>
标签正在尝试从操作上下文中获取值堆栈,但它是
null
,因为 Struts 过滤器不提供请求。

您需要的是学习Struts应用程序的基础知识。这里是来自 Struts 入门文档的示例教程。 如何创建 Struts 2 Web 应用程序。特别是第 5 节,您可以看到 Struts 过滤器配置。

© www.soinside.com 2019 - 2024. All rights reserved.