Struts2 With Styling 外战/入耳

Posted

技术标签:

【中文标题】Struts2 With Styling 外战/入耳【英文标题】:Struts2 With Styling outside the war/ear 【发布时间】:2012-10-29 11:42:07 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

根据Struts2 documentation,

模板加载

框架在两个位置寻找 FreeMarker 模板(在这个 顺序):

网络应用程序 类路径

这种顺序使其非常适合在 完全构建的 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>

【讨论】:

以上是关于Struts2 With Styling 外战/入耳的主要内容,如果未能解决你的问题,请参考以下文章

[React] Styling a React button component with Radium

[HTML5] Add Semantic Styling to the Current Page of a Navigation Item with aria-current

在React组件中导入SCSS文件时,不包含@use文件的类。

struts2--入

窗体按钮样式

struts2文件下载出现Can not find a java.io.InputStream with the name的错误