【发布时间】:2015-09-22 06:49:10
【问题描述】:
目前我正在 Liferay 6.2 中开发结构/模板组合,但我发现了一个问题。
在我的结构中,用户可以键入外部站点的 url(例如“www.google.com”):
<dynamic-element dataType="string" indexType="keyword" localizable="true" name="website" readOnly="false" repeatable="false" required="false" showLabel="true" type="text" width="small">
<meta-data locale="de_DE">
<entry name="label">
<![CDATA[Website (www.)]]>
</entry>
<entry name="predefinedValue">
<![CDATA[]]>
</entry>
<entry name="tip">
<![CDATA[]]>
</entry>
</meta-data>
</dynamic-element>
在我的模板中,我想要一个指向该页面的链接,但当前代码只是将结构的字符串值附加到我网站的 BaseURL。类似 www.company-url.de/web/www.google.de
<a href="${website.getData()}">More information</a>
(我无法提供正确的网址,因为我不确定是否允许)
有没有办法告诉 Liferay 使用 String 作为一个独立的 url,而不是附加它?
非常感谢您的帮助。
【问题讨论】:
-
你应该检查URL的定义。
www.google.de是主机名,但不是 URL。 URL 始终是绝对的 - 包括方案。其他所有内容都应与当前页面相关。 -
感谢您教我这样一个事实。但我仍然认为人们仍然应该能够理解我的问题是什么。即使用户真的输入了一个 url,它仍然只是附加到当前页面。
-
请自行尝试:如果用户输入绝对 URL (
http://www.google.de/),它将不会附加到当前页面。 -
这就是问题所在。我不能确定用户是否使用该方案。正因为如此,问题才存在。是的,我感谢你的 URL 部分,我没有正确指定它。
-
下面提到的
<#if !website.getData()?contains(":")>有什么问题?在这种情况下,只会转换非绝对的 URL。
标签: liferay liferay-6.2