在JSP頁面中,我們可以通過使用 request.getServerName()和request.getServerPort()獲取服務器名稱和服務器端口。`如何從Liferay velocity模板獲取服務器名稱和服務器端口?
正如我們不能從Liferay的Velocity模板獲得HttpServletRequest的,有沒有其他的辦法到 獲得服務器名稱和服務器端口?請用小代碼片段回答..
在JSP頁面中,我們可以通過使用 request.getServerName()和request.getServerPort()獲取服務器名稱和服務器端口。`如何從Liferay velocity模板獲取服務器名稱和服務器端口?
正如我們不能從Liferay的Velocity模板獲得HttpServletRequest的,有沒有其他的辦法到 獲得服務器名稱和服務器端口?請用小代碼片段回答..
在您的Liferay資源中,您可以找到com.liferay.portal.velocity.VelocityVariablesImpl
。
本課程是根據portal-impl/src/com/liferay/portal/velocity/VelocityVariablesImpl.java
。
如果檢查所有條目的速度範圍內(線,如velocityContext.put(String key, Object value)
),並特地在insertVariables
方法的人,你會看到,這暴露了你的HttpServletRequest名"request"
下。
因此,在您的模板中,您可以使用鍵$request
作爲任何其他速度上下文對象訪問您的請求對象。
然後,該對象可用於其所有的方法和屬性(如果是公共的)。
所以只是做
$request.getServerName()
和
$request.getServerPort()
此外,如果你想要的速度變量設置爲其中的一個,只是如下
#set ($my_amazing_variable = $request.getServerPort())
你」然後可以使用$my_amazing_variable
作爲任何常規速度litteral。
希望這會有所幫助。
NOTA BENE!
請注意,您無法訪問Liferay中所有類型的速度模板下的完全相同的一組變量和宏。 有不同的套
我已經建立了自己的網址與下面的代碼登錄彈出up.Thanks Ar3s。
#set($protocol = "http://")
#set($host = "$request.getServerName()")
#set($port = "$request.getServerPort()")
#set($column = ":")
#set($url = "/c/portal/login?p_l_id=10858")
#set($hrefurl = "$protocol$host$column$port$url")
<a class="sign-in" data-redirect="false" href="$hrefurl" id="yui_patched_v3_11_0_1_1420097083820_231" role="menuitem" title=""> <span id="yui_patched_v3_11_0_1_1420097083820_865" class="nav-item-label"> Sign In </span> </a>
當你說速度模板,談論主題模板或Web內容顯示模板或佈局模板? 如果我的問題對你來說看起來很神祕,我會理解的,如果是的話,告訴我我會盡量讓自己更清楚並且解釋更多。 – Ar3s
thame提供的portal-normal.vm文件。 – Shibu