我为 Struts 2 创建了一个新的主题模板。
所以我将以下代码放入我的struts.xml
:
<constant name="struts.ui.theme" value="mynew" />
这个模板目录在哪里,以便我可以将新主题放入其中。我尝试了很多地方,但没有一个有效。
java.io.FileNotFoundException: Template /template/mynew/actionerror.ftl not found.
我为 Struts 2 创建了一个新的主题模板。
所以我将以下代码放入我的struts.xml
:
<constant name="struts.ui.theme" value="mynew" />
这个模板目录在哪里,以便我可以将新主题放入其中。我尝试了很多地方,但没有一个有效。
java.io.FileNotFoundException: Template /template/mynew/actionerror.ftl not found.
webroot/template/theme
Struts 2 将首先在名称中查找标签的模板。如果在那里没有找到模板,它将使用作为 Struts 2 核心 jar 一部分的默认模板。您可以在模板加载中了解有关此功能的更多信息。
可以使用几种不同的规则选择模板目录,顺序如下:
- 特定标签上的
templateDir
属性- 名为的页面范围属性
templateDir
- 请求范围的属性名为
templateDir
- 会话范围的属性名为
templateDir
- 名为 templateDir 的应用程序范围属性
- 中的
struts.ui.templateDir
属性struts.properties
(默认为模板)
Roman C 将模板放在正确文件夹中的答案中的主要线索是他提到了webroot。我在其他地方没见过这个。因此,基于此,这是一个工作示例。
我的项目在一个 EAR 文件中,里面看起来像这样:
为了使模板工作,在顶层的 WAR 文件中应该有一个“模板”(或您配置的任何其他内容)文件夹。在其中,使用您的主题名称创建一个文件夹。
由于我的项目是使用 Maven 构建的,因此我的 FTL 文件位于my_web_project/src/main/webapp/template_dir_name/theme_name/my_field_template.ftl
我希望这对某人有用。我花了一段时间才弄清楚。