3

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

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

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

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

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

2 回答 2

0

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

可以使用几种不同的规则选择模板目录,顺序如下:

  • 特定标签上的templateDir属性
  • 名为的页面范围属性templateDir
  • 请求范围的属性名为templateDir
  • 会话范围的属性名为templateDir
  • 名为 templateDir 的应用程序范围属性
  • 中的struts.ui.templateDir属性struts.properties(默认为模板)
于 2012-10-20T10:23:22.163 回答
0

Roman 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

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

于 2019-04-29T09:27:11.857 回答