Struts 2模板未找到

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Struts 2模板未找到相关的知识,希望对你有一定的参考价值。

我为Struts2创建了一个新的主题模板。

所以我将以下代码放入我的struts.xml

<constant name="struts.ui.theme" value="mynew" />

这个模板目录在哪里,以便我可以将新主题放入其中。我尝试了很多地方,但都没有。

java.io.FileNotFoundException: Template /template/mynew/actionerror.ftl not found.
答案

Struts 2首先会在webroot/template/theme名称中查找标签的模板。如果它没有在那里找到模板,它将使用默认模板,它是Struts 2核心jar的一部分。您可以在Template Loading中了解有关此功能的更多信息。

可以使用多个不同的规则按以下顺序选择模板目录:

  • 特定标签上的templateDir属性
  • 页面范围的属性名为templateDir
  • 请求范围的属性名为templateDir
  • 会话范围的属性名为templateDir
  • 名为templateDir的应用程序范围属性
  • struts.ui.templateDir中的struts.properties属性(默认为模板)
另一答案

罗曼C答案中将模板放在正确的文件夹中的主要线索是他提到了webroot。我还没有在其他任何地方见过这个。基于此,这是一个有效的例子。

我的项目位于一个EAR文件中,里面看起来像这样:

  • my_project_ejb.jar
  • my_project.war
  • 带有必需jar的lib文件夹

要使模板工作,顶级WAR文件中应该有一个“模板”(或其他任何配置它)文件夹。在其中,创建一个包含主题名称的文件夹。

由于我的项目是使用Maven构建的,因此我的FTL文件位于my_web_project/src/main/webapp/template_dir_name/theme_name/my_field_template.ftl

我希望这对某人有用。我花了一段时间来搞清楚。

以上是关于Struts 2模板未找到的主要内容,如果未能解决你的问题,请参考以下文章

viewpager 中的片段,未找到视图错误

如何在 ViewPager 中从 Activity 移动到 Fragment?未找到片段 ID 的视图

VSCode自定义代码片段2——.vue文件的模板

未找到片段 SettingsFragment 的 id 0x7f0a000e 的视图

Struts2 S2-029远程代码执行漏洞

Apollo Codegen 没有找到生成代码的操作或片段