使用Velocity宏创建UI组件

时间:2011-10-27 15:50:51

标签: macros velocity

使用velocity宏创建UI组件是一个好主意, 什么是性能和代码维护

例如,

取代

<input type="text" name="$name" value="$value" />

我们会写

#text($name $value)

2 个答案:

答案 0 :(得分:1)

如果您想要隐藏分支逻辑或长html,这当然很方便。 假设您需要通用导航按钮格式化程序,只需在一个位置更改代码即可。 恕我直言,对于重构而言,便携性和新团队成员更容易,也许更难。

以下是我使用的示例代码:

#macro( viewCtrlButton $butId $butText $style)      ##style is optional
##configuration phase
    #if ($style == "save")        #set($type = "icon-buttons cat-save")
    #elseif($style == "cancel")   #set($type = "icon-buttons cat-cancel")
    #elseif($style == "next")     #set($type = "buttonz but_naviR")
    #end
    #if ($butId.contains(".")) 
        #set($link = "super_link") 
    #else 
        #set($link = "submit_link") 
    #end
##the actual code to construct
<a id="$butId" href="#" class="$type $link"> 
    <span> $butText </span>
</a>
#end

答案 1 :(得分:0)

没有“好”或“坏”,“适合环境”。

除非涉及大量逻辑或大量简化,否则我只是用宏或模板替换标准标签 - 我需要足够的功能来包装额外的工作,额外的时间和额外的认知负担值得。

(“认知加载”只是意味着如果我正在查看模板文件,如果我必须查找宏,那么我需要更长时间才能完全理解它正在做什么。这不一定是坏的,如果我知道的话应用程序的代码,它不相关。)