1

我对 Struts2 有疑问,问题是,客户端希望 Web 应用程序的样式是动态的,例如,我可以将模板 (.html / .ftl) 放在 /apps/template/path 上所有逻辑在战争中,我能做到吗?

我一直在谷歌上搜索,这种代码风格属于 freemarker。但如果使用 freemarker,我必须使用 servlet 进行编码(我不想那样做)。

你能给我提示/解决方案,还是真的不能在 Struts2 中?

4

1 回答 1

2

如果使用 freemarker,我必须使用 servlet 进行编码

不,FreeMarker 不需要 Servlet 而不是 Actions。FreeMarker 完全集成在 Struts2 中,它只需要你的 libs 目录中的库以及 struts.xml 和 web.xml 中的一些小配置。

根据Struts2 文档

模板加载

该框架在两个位置(按此顺序)查找 FreeMarker 模板:

  • Web应用程序
  • 类路径

这种排序使其非常适合在完全构建的 jar 中提供模板,但允许在您的 Web 应用程序中定义这些模板的覆盖。事实上,这就是您可以覆盖框架中包含的默认 UI 标签和表单标签的方式。

此外,您可以通过 templatePath 或 TemplatePath 上下文变量(在 {{web.xml)} 中指定位置(文件系统上的目录)。如果指定了变量,则首先搜索它指向的目录的内容。此变量当前与您的应用程序的根目录无关。

因此,如果您想使用 .FTL 文件(FreeMarker 模板)代替 JSP 文件,您可以将它们放在耳朵之外,在文件系统中。

像这样(web.xml):

 <!-- FreemarkerServlet settings: -->
  <init-param>
    <param-name>TemplatePath</param-name>
    <param-value>/apps/template/path</param-value>
  </init-param>
于 2012-11-09T09:43:37.177 回答