Struts2在战争/耳朵之外的造型

时间:2012-11-09 06:34:21

标签: servlets struts2 struts freemarker template-engine

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

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

你能给我一些提示/解决方案吗,或者它真的不能出现在Struts2中?

1 个答案:

答案 0 :(得分:2)

  

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

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

根据Struts2 documentation

  

模板加载

     

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

     
      
  • 网络应用
  •   
  • 班级路径
  •   
     

这种排序使其成为在内部提供模板的理想选择   完全构建的jar,但允许覆盖这些模板   在您的Web应用程序中定义。实际上,这就是你可以覆盖的方式   框架中包含的默认UI标记和表单标记。

     

此外,您可以指定位置(文件中的目录)   system)通过templatePath或TemplatePath上下文变量(in   {{web.xml)} 。如果指定了变量,则该内容为   它将指向的目录将首先被搜索。这个变量是   目前不是相对于应用程序的根目录。

因此,如果您想使用.FTL文件(FreeMarker模板)INSTEAD的JSP文件,您可以将它们放在文件系统的耳边。

像这样(web.xml):

 <!-- FreemarkerServlet settings: -->
  <init-param>
    <param-name>TemplatePath</param-name>
    <param-value>/apps/template/path</param-value>
  </init-param>