Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates Velocity中的Rails样式模板帮助器_Templates_Velocity_Html Helper_View Helpers - Fatal编程技术网

Templates Velocity中的Rails样式模板帮助器

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

我需要在Velocity模板中添加一些非常复杂的动态HTML结构。如果我试图直接在模板中编写这些内容,那将是一片混乱

让我解释一下我想做什么。。。比如说,在我的网站上,用户可以发表评论。与其将所有复杂的动态HTML结构写入注释表和发布表单,我希望能够在我的模板中实现这一点:

<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时自动实例化并放到上下文中。