在速度模板中调用宏函数

我试图找出如何从速度宏调用中返回一个值并将其分配给变量

我的宏功能看起来像这样。 它曾经在共同的共享宏文件中

#macro(getBookListLink, $readingTrackerResult)
   $readingTrackerResult.getBookListLink()
#end

我需要将此宏的结果分配给另一个速度模板文件中的变量

我尝试过这样的事情

#set($book_list_link = #getBookListLink( $readingTrackerResult ))

但没有工作。 我试着用#,$和在函数getBookListLink之前没有任何东西。 但没有任何工作。 我不能从宏返回? 我的宏有问题?

但是,如果我在html文件中分别调用#getBookListLink($ readingTrackerResult)。 它的工作原理,我可以打印结果到用户界面。 但不能分配给一个变量。


宏不是函数; 它们用于渲染输出。 但是,如果您不介意丢失类型并将结果作为文本获取......

#set( $book_list_link = "#getBookListLink( $readingTrackerResult )" )

为了消除空格和空行,使用多行注释( #* comment *# ):

#macro( myMacro $param )#*
  *#the_return_value#*
*##end

而不是生活在'返回值'的字符串限制,最好外部定义的结果变量可以'通过引用'传递,例如:

#macro(getBookListLink $inTrackerResult $outBookListLink)
    #if ($outBookListLink)
        #set ($outBookListLink = $inTrackerResult.getBookListLink())
    #end
#end

#set ($myLink = "")
#getBookListLink($myTrackerResult $myLink)
myBookListLink = "$myLink"<br/>
链接地址: http://www.djcxy.com/p/47311.html

上一篇: Calling Macro function in Velocity template

下一篇: Java Pass Method as Parameter