Servlets Struts2,外接战争/耳朵

Servlets Struts2,外接战争/耳朵,servlets,struts2,struts,freemarker,template-engine,Servlets,Struts2,Struts,Freemarker,Template Engine,我对Struts2有一个问题,问题是,客户端希望web应用程序的样式是动态的,例如,我可以将模板(.html/.ftl)放在/apps/template/path上,所有逻辑都在war上,我可以这样做吗 我一直在谷歌搜索,这种风格的代码属于freemarker。但是如果使用freemarker,我必须使用servlet编写代码(我不想这样做) 你能给我一个提示/解决办法吗?否则它真的不会有问题吗 如果使用freemarker,我必须使用servlet编写代码 不,FreeMarker不需要ser

我对Struts2有一个问题,问题是,客户端希望web应用程序的样式是动态的,例如,我可以将模板(.html/.ftl)放在/apps/template/path上,所有逻辑都在war上,我可以这样做吗

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

你能给我一个提示/解决办法吗?否则它真的不会有问题吗

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

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

根据,

模板加载

框架在两个位置查找FreeMarker模板(在本例中) 订单):

  • Web应用程序
  • 类路径
这种顺序使得它非常适合在 完全构建的jar,但允许重写这些模板 在web应用程序中定义。事实上,这就是您可以覆盖的方式 框架中包含的默认UI标记和表单标记

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

因此,如果您想使用.FTL文件(FreeMarker模板)而不是JSP文件,可以将它们放在ear之外的文件系统中

如下所示(web.xml):


模板路径
/应用程序/模板/路径
 <!-- FreemarkerServlet settings: -->
  <init-param>
    <param-name>TemplatePath</param-name>
    <param-value>/apps/template/path</param-value>
  </init-param>