Struts 2模板未找到

问题描述 投票:3回答:2

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

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

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

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

java.io.FileNotFoundException: Template /template/mynew/actionerror.ftl not found.
java configuration struts2 themes freemarker
2个回答
0
投票

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

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

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

0
投票

罗曼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

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

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