Java:动态应用Velocity脚本

时间:2011-12-26 10:58:04

标签: java struts velocity template-engine

我正在使用Struts MVC构建一个小portlet,用于搜索/列出来自Web服务的书籍。

在我的第一次测试中,我在Struts项目中集成了Velocity Tools,没有任何问题。

最后一步是让用户选择是否要使用速度。如果是,则velocity脚本将作为String来自Web服务。 我将测试放在JSP页面中,以便我可以应用以下算法:

List<Book> books = myWebservice.getAllBooks();
if (user.preference.vm = enabled ){
    String velocityScript = myWebservice.getARandomVelocityScript()
    renderTheBooks(velocityScript,books);
}
else{
    use JSP and/or struts tags to generate the content
}

问题出在renderTheBooks(velocityScript,books)行:我该如何编码?

谢谢你,问候。

(我知道这个架构看起来有点奇怪但是请让我们讨论renderTheBooks方法。我将非常感谢你理解这一点。)

2 个答案:

答案 0 :(得分:1)

Velocity类为您提供静态便捷方法:

public static boolean evaluate(Context context,
                           Writer writer,
                           String logTag,
                           Reader reader)

假设阅读器包含您的力度模板,并且速度已正确配置 您可以使用此方法评估它

答案 1 :(得分:0)

#foreach( $book in $books )
    $book
#end

通过这种方式,您可以以速度呈现图书清单。