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