【问题标题】:Struts 2 Template not found未找到 Struts 2 模板
【发布时间】:2012-10-10 19:04:54
【问题描述】:

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

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

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

这个模板目录在哪里,我可以把新的主题放进去。我尝试了很多地方,但没有一个有效。

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

【问题讨论】:

    标签: java configuration struts2 themes freemarker


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        • 2015-07-08
        • 2015-05-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多