Templates Velocity中的Rails样式模板帮助器
我需要在Velocity模板中添加一些非常复杂的动态HTML结构。如果我试图直接在模板中编写这些内容,那将是一片混乱 让我解释一下我想做什么。。。比如说,在我的网站上,用户可以发表评论。与其将所有复杂的动态HTML结构写入注释表和发布表单,我希望能够在我的模板中实现这一点:Templates Velocity中的Rails样式模板帮助器,templates,velocity,html-helper,view-helpers,Templates,Velocity,Html Helper,View Helpers,我需要在Velocity模板中添加一些非常复杂的动态HTML结构。如果我试图直接在模板中编写这些内容,那将是一片混乱 让我解释一下我想做什么。。。比如说,在我的网站上,用户可以发表评论。与其将所有复杂的动态HTML结构写入注释表和发布表单,我希望能够在我的模板中实现这一点: <div> // call to a method that generates the comments table </div> <div> // call to a
<div>
// call to a method that generates the comments table
</div>
<div>
// call to a method that generates the comments form
</div>
<div>
$helper.getSomeHtml()
</div>
//调用生成注释表的方法
//调用生成注释表单的方法
在RubyonRails中,有一些被调用的东西允许您从模板中调用一个方法,该方法返回一个动态生成的HTML块,并嵌入到您调用它的模板中。助手的好处在于,您只需将CPU花费在您使用的助手上。使用VelocityContext.put()
方法,似乎必须提前生成所需的所有内容。这是一个问题,因为我最终将有大约50个不同的助手,我需要非程序员的网页设计师能够随意交换他们
所以我在问
对不起,我没有用脑子就提交了这个。您只需创建一个帮助器类:
public class HtmlHelper {
public String getSomeHtml() {
return "<p>badgers</p>";
}
}
然后在模板中:
<div>
// call to a method that generates the comments table
</div>
<div>
// call to a method that generates the comments form
</div>
<div>
$helper.getSomeHtml()
</div>
$helper.getSomeHtml()
最后,在庆祝中。 < P>你是否考虑过(或正在使用)?我倾向于将它们视为非常类似于Rails助手,并且绝对是保持视图特定逻辑的最佳位置。根据具体的实现,您可以将助手中的连接视为一个自定义工具,然后让工具框架无缝地管理实例化等。如果您的助手只是一个POJO,您可能会发现它已经作为一个工具工作,没有任何更改
或者,如果您的助手只构建HTML结构,并且没有任何复杂的Java依赖项,那么您可以将其创建为?并使用VelocityTools 2,这些工具在你使用之前是不会被实例化的。你可以使用VelocityTools让你的HtmlHelper在模板中引用$helper时自动实例化并放到上下文中。