Re: Returning String without Whitespace from Velocimacros
"O. Olson" <[email protected]> Thu, 1 Aug 2013 19:02:27 +0100 (BST)
| Newsgroups | gmane.comp.jakarta.velocity.user |
|---|---|
| Message-ID | <[email protected]> |
Thank you very much Alex. This would be very painful if
every time I call a macro, I would need to set a variable and trim it.
I am
curious what is the function of the @ sign in the helper “trim” macro that you
suggested. By the way, how do I call this macro i.e. invoke it?
Is it possible to return a particular variable from a Web Macro? E.g.
#macro(default_query_url)
#if($request.params.get('q'))
#set($str =
query_url($request.params.get('q')))
#else
#set($str =
query_url("*"))
#end
RETURN $str
???? How???
#end
This would help my whitespace problem.
Thanks again,
O. O.
----- Messaggio originale -----
Da: Alex Fedotov <[email protected]>
A: Velocity Users List <[email protected]>; O. Olson <[email protected]>
Cc:
Inviato: Giovedì 1 Agosto 2013 12:43
Oggetto: Re: Returning String without Whitespace from Velocimacros
Simple way:
#set($str="#default_query_url()")
$str.trim()
Can probably create a helper macro "trim" that does the same thing to the
body content:
#@trim()
#default_query_url()
#end
On Thu, Aug 1, 2013 at 1:27 PM, O. Olson <[email protected]> wrote:
> Hi,
>
> I am new to using Apache Velocity. What is the correct way of returning a
> string from a Macro or a Velocimacro?
>
> Since I did not have a clue on how to return a string from a Macro, I
> decided to do something like
> #macro(query_url $query_param) q=$query_param #end
>
> I can then call the Macro using: #query_url("*")
>
> The problem with this is that the resulting value contains a Tab or
> number of Spaces before the 'q=' when I call it.
>
>
> One option is to delete the spaces like:
> #macro(query_url $query_param)
> q=$query_param
> #end
> This fixes my problem but is very hard to read. To take this a step
> further consider:
> #macro(default_query_url) #if($request.params.get('q'))
> #query_url($request.params.get('q')) #else #query_url("*") #end #end
> Vs.
> #macro(default_query_url)
> #if($request.params.get('q'))
> #query_url($request.params.get('q'))
> #else
> #query_url("*")
> #end
> In the first case there is no whitespace, but editing it would be very
> difficult for more complicated macros.
>
> I am curious what is the correct way to return values from Velocimacros
> and if I can Trim the resulting Whitespace before returning it?
>
> Thank you an advance for any help.
> O. O.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>
>