0

現在、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>

(許可されているかどうかわからないため、正しいURLを提供できません)

文字列を追加する代わりに、独立した URL として使用するように Liferay に指示する方法はありますか?

どうもありがとうございました。

4

2 に答える 2

0

「:」が含まれているかどうかを確認し、${website.getData()}含まれていない場合は自分で追加します。

<#assign myURL = website.getData()>

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

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

ただし、これは URL を検証するには絶対に十分ではありません...

于 2015-09-22T07:54:53.460 に答える
-1

問題は、メソッド「.getData()」を使用していることです。これは単なる文字列だと言いました。代わりに「.getText()」を使用してみてください。

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

うまくいくかどうか教えてください:)

于 2015-09-22T06:56:10.310 に答える