In your Liferay sources you can find com.liferay.portal.velocity.VelocityVariablesImpl
.
This class is placed under portal-impl/src/com/liferay/portal/velocity/VelocityVariablesImpl.java
.
If you check all entries to velocity context (lines like velocityContext.put(String key, Object value)
) and specially the ones in the insertVariables
method, you'll see that this exposes you httpServletRequest under the name "request"
.
Therefore, in your template you access your request object as any other velocity context object with the key $request
.
This object will, then, be usable with all it's methods and properties (if public).
So just do
$request.getServerName()
and
$request.getServerPort()
Furthermore, if you want to set a velocity variable to one of those, just do as follows
#set ($my_amazing_variable = $request.getServerPort())
You'll then be able to use $my_amazing_variable
as any regular velocity litteral.
Hope this helps.
NOTA BENE !
Note that you do not have access to the exact same set of variables and macros under all types of velocity templates in Liferay.
There are different sets for
- theme templates
- layout templates
- web-content templates