【问题标题】:Using an external Link in Liferay Structure/Template在 Liferay 结构/模板中使用外部链接
【发布时间】: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 部分,我没有正确指定它。
  • 下面提到的&lt;#if !website.getData()?contains(":")&gt; 有什么问题?在这种情况下,只会转换非绝对的 URL。

标签: liferay liferay-6.2


【解决方案1】:

检查${website.getData()} 是否包含“:”,如果没有,请自行添加:

<#assign myURL = website.getData()>

<#if !website.getData()?matches(".*:.*")>
    <#assign myURL = "http://" + myURL>
</#if>

<a href="${myURL}">More information</a>

但是,这绝对不足以验证 URL...

【讨论】:

  • 这是我想避免的解决方案,因为我不确定用户输入的 url 是什么。例如,他也可能会写 https://。我希望有一种方法可以自动执行此操作而且您的 if 子句顺序不正确吗?我认为您的网址中有两次“http://”
  • 你应该使用contains(":")。顺序是正确的,因为! 否定了条件。
  • 哦没看到“!”,sry ;)
【解决方案2】:

问题是您使用的是“.getData()”方法,正如您所说的,它只是一个字符串。尝试改用“.getText()”:

<a href="${website.getText()}">More information</a>

希望它有帮助,让我知道它是否有效:)

【讨论】:

  • Liferay 说“getText”是未定义的。 (是的,我使用了括号;))
猜你喜欢
  • 2023-01-24
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 2012-02-18
  • 2015-07-24
  • 1970-01-01
  • 2018-04-22
  • 1970-01-01
相关资源
最近更新 更多