今天抽时间看了一下EasyJWeb 0.1说明文档,其中指出struts试图只支持jsp,感觉这句话不妥,struts完全可以很好的支持velocity,Velocity 也非常容易集成进 Struts 应用程序,笔者经过实践得出把Struts与Velocity 模板引擎组合起来很简单,也很直接;实际上,只要用五步就可以实现: 1. 把 Velocity JAR 放在类路径中。 2. 修改 web.xml 文件让它识别 Velocity servlet。 3. 把 Velocity toolbox.xml 放在应用程序的 WEB-INF 目录下。 4. 修改 struts-config,把它的视图指向 Velocity 模板而不是 JSP。 5. 为每个需要显示的页面创建 Velocity 模板。 , 在 Web 应用程序中,Velocity 实现的目标与 JSP 相同:可以用它在向 HttpServletResponse 的 OutputStream 发送之前生成要发送的 HTML。在 Struts 应用程序中使用 Velocity 的一种方式是在 Struts 的 Action 内部写入响应,然后返回 null 的 ActionForward。虽然这种技术可行,但却有严重的缺陷:无法使用 struts-config.xml 文件把响应抽象出来。把视图放在 Action 内部,意味着如果想要修改响应,就必须修改 Action。因为这种技术剥夺了 Struts 最好的一项特性(即从视图中抽象出重点的能力),所以我更愿意把所有响应指向一个 servlet,由它负责访问 Velocity 模板,合并上下文的数据,生成响应,然后再送回浏览器,struts对velocity模板的支持还是没有问题的!
|