Shi*_*ibu 4 liferay-6 liferay-velocity
在jsp页面我们可以通过request.getServerName()和request.getServerPort()获取Server Name和Server Port。
由于我们无法从 Liferay 速度模板中获取 HttpServletRequest,还有其他方法可以同时获取 Server Name 和 Server Port 吗?请用一个小代码片段回答..
在您的 Liferay 资源中,您可以找到com.liferay.portal.velocity.VelocityVariablesImpl.
这个类放在portal-impl/src/com/liferay/portal/velocity/VelocityVariablesImpl.java.
如果您检查速度上下文的所有条目(如velocityContext.put(String key, Object value)),特别是方法中的条目insertVariables,您将看到这将在名称下公开 httpServletRequest "request"。
因此,在您的模板中,您可以像访问任何其他速度上下文对象一样使用 key 访问您的请求对象$request。
然后,这个对象将可用于它的所有方法和属性(如果是公共的)。
所以就做
$request.getServerName()
Run Code Online (Sandbox Code Playgroud)
和
$request.getServerPort()
Run Code Online (Sandbox Code Playgroud)
此外,如果要将速度变量设置为其中之一,请执行以下操作
#set ($my_amazing_variable = $request.getServerPort())
Run Code Online (Sandbox Code Playgroud)
然后,您就可以将其$my_amazing_variable用作任何常规速度垃圾。
希望这可以帮助。
请注意!
请注意,在 Liferay 中所有类型的速度模板下,您无法访问完全相同的一组变量和宏。有不同的套装
| 归档时间: |
|
| 查看次数: |
8156 次 |
| 最近记录: |