詳細画面でURLからドメイン部分だけを抜き出す/一覧画面でURLをリンク付きで表示/テスト詳細画面の調整

  1. 詳細画面でURLからドメイン部分だけを抜き出す

今回はまずURLのドメイン部分だけをtest詳細画面に表示することに取り組みました。 まずtestresultdata.javaに、getUrlDmainメソッドを作成しました。追加した項目は以下の通りです。

import java.net.URL;
import java.net.MalformedURLException;


  public String getUrlDmain() throws MalformedURLException{
      URL url2 = new URL(url.getValue());
      return url2.getProtocol()+"://"+url2.getHost();
}

url2はURLクラスを使用しているため、最初にimportする必要があります。 また、https://www.javadrive.jp/tutorial/url/index2.html をみると、

「java.net.MalformedURLException」クラスの例外が発生する可能性がありますのでその処理を記述しておく必要がある」

とあったので、これもimportしました。 また先程のサイトの中に、URLにおいてドメインに当たる部分はプロトコルとホストであるという記述があったため、 プロトコルとホストを取り出すメソッドを使用し、returnで返しています。

しかしこれだけでは表示に反映されないため、ajax-test-detail.vmの以下の文を変更しました。

#ALtditem($!result.Detail.Url)
/**変更後**/
#ALtditem($!result.Detail.UrlDmain)

変更前の文だとgetUrlのresultを受け取ることになっているため、getUrlDmainのresultを受け取るように変更しました。


2.一覧画面でURLをリンク付きで表示

まずajax-test-list.vmの87行目に以下の文を追加しました。

<th>#ALajaxsort('test_name' $l10n.TEST_URL $result 'TestListScreen')</th>

そして100行目付近(trの中)に以下の文を追加しました。

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

これで一覧画面にURLが表示されるようになりました。


3.テスト詳細画面の調整

テスト詳細画面の表示が思うようになっていなかったため、先輩などに聞きながら、自分なりに調整しました。 いままでajax-test-detail.vmには以下の文章を#ALtablefooter()の下に追加していました。

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

その為テスト詳細画面の外にURLが表示されてしまっていたのですが、#ALtableheaderWide()と#ALtablefooter()の 中に追加し直すことで、正しく反映されるようになりました。 このようなVelocity の関数の定義は、test-portlet/war/src/main/webbapp/WEB-INF/templates/vm/GlobalMacros.vmの中に記述されていました。


4.テスト詳細画面へのサムネイルの表示

サムネイルを表示する際に、testresultdata.java内に以下の文を追加しました。

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

そしてhacknoteを参考に、ajax-test-detail.vmの、#ALtableheaderWide()と#ALtablefooter()の 中に以下の文を追加しました。

#ALtdcaption($l10n.TEST_THUMBNAIL)
#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()

TEST_THUMBNAILの参照を、AipoLocalization_ja.propertiesの中に作成します。 これで、サムネイルがテスト詳細画面に表示されるようになりました。


今回で基礎編が終了し、実践編に着手することになりました。改めて気を引き締めて取り掛かりたいと思います。 htmlについての勉強不足が目立ったので、自主的に学習します。