struts2的自定义模板引擎

struts2的自定义模板引擎,struts2,template-engine,Struts2,Template Engine,我想创建一个自定义的模板引擎,比如velocity或freemarker,它将在基于struts 2的应用程序中使用。我不想使用任何可用的模板引擎的原因是,我想让dreamweaver固定和编辑HMTL,这意味着没有struts标记或JSTL。这些值将被注入Xpath或现有HTML标记值的简单字符串替换。我要求: 普通HTML+一些配置(属性/xml)+数据=> 填充有数据的HTML+一些动态生成的Javascript 1) 使用结果类型的名称和操作返回该结果类型时将调用的类定义一个包 <

我想创建一个自定义的模板引擎,比如velocityfreemarker,它将在基于struts 2的应用程序中使用。我不想使用任何可用的模板引擎的原因是,我想让dreamweaver固定和编辑HMTL,这意味着没有struts标记或JSTL。这些值将被注入Xpath或现有HTML标记值的简单字符串替换。我要求:

普通HTML+一些配置(属性/xml)+数据=>

填充有数据的HTML+一些动态生成的Javascript

1) 使用结果类型的名称和操作返回该结果类型时将调用的类定义一个包

<package name="default" namespace="/" extends="struts-default">
  <result-types>
    <result-type name="myResultType" class="com.awesome.MyResult"/> 
  </result-types>
  .... actions and other things...
</package>

Dave Newton的“Apache Struts 2 web应用程序开发”中对此有很好的描述。我知道上面的类没有实现,但我打赌你可以从这里找到你需要的。

我如何编写像freemarker这样的模板引擎?如何将我的模板引擎与struts2集成?谢谢,我现在正在使用它。对于其他希望使用此功能的用户,我可以给您一些提示。打开struts默认查找实现类
FreemarkerResult.java
XSLTResult.java
的拦截器是我通读的两个类,它们的作用相当简单。我也会推荐通过
http://www.oracle.com/technetwork/java/filters-137243.html
关于java过滤器,特别是当您想修改响应时。HttpResponseWrapper是必需的。还有一件事是PreResultListener,它可以在计算结果之前操作调用对象。
package com.awesome;
public class MyResult extends StrutsResultSupport{
  //1) read the the target file
  //2) process/transform the target file
  //3) write out the transformed file as the result
}