重复的 Freemarker 警告消息 - 渲染标签超出操作范围
repeated Freemarker warning message - Rendering tag out of Action scope
我在 Tomcat9 / Ubuntu 服务器上有一个 Struts Web 应用程序(核心 V2.5.30)运行。 syslog 文件收到大量类似于以下内容的错误消息实例。应用程序中没有可直接访问的 JSP,并且 JSP 根据消息中提到的 URL 中的建议 web.xml
被阻止。
[2022-04-11 13:17:39] [info] [WARN ] 2022-04-11 13:17:39 [https-openssl-nio-8443-exec-5] FreemarkerTemplateEngine - Rendering tag /template/xhtml/head.ftl out of Action scope, accessing directly JSPs is not recommended! Please read https://struts.apache.org/security/#never-expose-jsp-files-directly
是什么导致出现这些消息?
index.jsp
中的某些东西正在调用 JSP 页面。它可能是包含或转发的页面。使用相同的请求,但调用的页面包含 struts 个标签。
如果您在 Web 应用程序描述符文件中将其定义为 <welcome-file>
,则索引页由 Web 容器本身处理。所以它没有处理 struts2 过滤器,因此没有可用的操作范围。
如果您想让它由 struts2 处理,您应该创建 returns 此页面作为结果的操作映射。
If you are using Struts tags inside JSP page, either it welcome file listed or not it should be a dispatcher
result of an action. Welcome file list files could be handled by the web container if you navigate to the folder of your web content hierarchy and there's a welcome file inside it, and there's no action mapped to that URL. In this case you cannot use struts tags inside the welcome file because you are trying to run it without associated filter, or the struts2 filter is already handled another request.
See the examples of Hello World application or Hello World using Struts2 that would show you how to create action configuration that utilize an index
action or use actionless results using Convention Hello World example.
我在 Tomcat9 / Ubuntu 服务器上有一个 Struts Web 应用程序(核心 V2.5.30)运行。 syslog 文件收到大量类似于以下内容的错误消息实例。应用程序中没有可直接访问的 JSP,并且 JSP 根据消息中提到的 URL 中的建议 web.xml
被阻止。
[2022-04-11 13:17:39] [info] [WARN ] 2022-04-11 13:17:39 [https-openssl-nio-8443-exec-5] FreemarkerTemplateEngine - Rendering tag /template/xhtml/head.ftl out of Action scope, accessing directly JSPs is not recommended! Please read https://struts.apache.org/security/#never-expose-jsp-files-directly
是什么导致出现这些消息?
index.jsp
中的某些东西正在调用 JSP 页面。它可能是包含或转发的页面。使用相同的请求,但调用的页面包含 struts 个标签。
如果您在 Web 应用程序描述符文件中将其定义为 <welcome-file>
,则索引页由 Web 容器本身处理。所以它没有处理 struts2 过滤器,因此没有可用的操作范围。
如果您想让它由 struts2 处理,您应该创建 returns 此页面作为结果的操作映射。
If you are using Struts tags inside JSP page, either it welcome file listed or not it should be a
dispatcher
result of an action. Welcome file list files could be handled by the web container if you navigate to the folder of your web content hierarchy and there's a welcome file inside it, and there's no action mapped to that URL. In this case you cannot use struts tags inside the welcome file because you are trying to run it without associated filter, or the struts2 filter is already handled another request.See the examples of Hello World application or Hello World using Struts2 that would show you how to create action configuration that utilize an
index
action or use actionless results using Convention Hello World example.