テストポートレットの一覧画面でURLの表示/詳細画面でサムネイルの表示・URLのドメイン部分の表示をする方法

本日はインターン三日目で、テストポートレット詳細画面でのサムネイルの表示、URLドメイン部分までの表示、一覧画面でのURLの表示を行いました。

サムネイルの表示では、まずURLを改行などの処理を行わずにそのまま取り出すために、 /test-portlet/portlets/test/src/main/java/com/aimluck/eip/test/TestResultData.java にgetUrl2という以下に示すメソッドを追加しました。

public String getUrl2(){
        return url.getValue();
  }

これはgetUrlとは少し違っていて、返す値が改行とかされずにそのままになるらしいです。。 ちなみにgetUrlは


public String getUrl(){ return ALEipUtils.getMessageList(url.getValue()); }

と定義されています。

そしてgetUrl2を用いて、 test-portlet/portlets/test/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/ajax-test-detail.vm において

#ALtditemheader()
<a href="$!result.Detail.Url2"><img title="$!result.Detail.Url2" src="http://capture.heartrails.com/free?$!result.Detail.Url2" alt="$!result.Detail.Url2" width="200" height="300" /></a>
#ALtditemfooter()

を30〜40行あたりの同様な表示をしているメモ欄の下に記述したところ、サムネイルの表示が実現しました。

次に、URLのドメイン部分の表示について説明を行います。

URLのドメイン部分を取得する方法は色々あるみたいなのですが、今回はURIを使った方法について解説を行います。 URIの詳細な説明は次のリンクを参考にして下さい。 http://koseki.hatenablog.com/entry/20070404/javauri これを利用したメソッドを、 /test-portlet/portlets/test/src/main/java/com/aimluck/eip/test/TestResultData.java 内に作成します。メソッドを作る前に、java.net.URIをインポートすることを忘れないようにしましょう。

今回はgetScheme()やgetHost()を使えば十分です。 実際に記述する内容は、

import java.net.URI;


public String getUrlDmain() throws Exception{
          URI u = new URI(url.getValue());
          return u.getScheme()+"://"+u.getHost();
  }

です。throws Exceptionは必要みたいです。これでvmファイル内において$!result.Detail.UrlDmainなどのように使用する準備が出来ました。 そして /test-portlet/portlets/test/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/ajax-test-detail.vm の中、30〜40行目のメモ欄の表示を行っている部分の下に

#ALtdcaption($l10n.TODO_URL)
#ALtditem($!result.Detail.UrlDmain)

を記述することでドメイン部分の表示が実現します。

最後に、一覧画面でのURLの表示について説明を行います。 これは /test-portlet/portlets/test/src/main/webapp/WEB-INF/templates/vm/portlets/html/ja/ajax-test-list.vm の100行目付近、タイトルの表示を行っている部分の下に

#ALtdcellheaderAtt('class="auiMTCaption"')
<div>
<a href="$record.Url"></a>
</div>
#ALtdcellfooter()

を記述することで実現することが出来ます。

余談ですが、自分はよく似たファイルである /test-portlet/portlets/test/src/main/webapp/WEB-INF/templates/vm/portlets/html/ajax-test-list.vm に書き込んでしまい時間をロスしました。他の方も気をつけましょう。