インターン4日目

トラブルであまり作業が進まなかったが、無事に基礎編を終え、実践編に入ることが出来た。

前回のドメイン表示の続き。 https://hacknote.jp/archives/13243/

https://hacknote.jp/archives/15161/

<URLクラスを使いこなす> http://www.javadrive.jp/tutorial/url/index2.html

基礎編最後の課題である、URLのドメインのみ表示を確認した。

詳細画面の処理なので、TestResultData.javaに書き込んでいく

とりあえずサイトに書いてあるように、

import java.net.URL;

をインポート。 また、URLクラスを利用した、 URL(String spec)でURLをString表現から生成できる。


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

throws MalformedURLExceptionは例外を弾く処理らしい。 throws MalformedURLException と throws Exception の違いや詳細は

http://www.atmarkit.co.jp/ait/articles/0611/22/news144.html

今回は、サイトに書いてあるようにthrows MalformedURLExceptionを使用した。

しかしその場合、java.net.URLの他に、java.net.MalformedURLExceptionもimportする必要があるようだ。

import java.net.URL;

import java.net.MalformedURLException;

これでドメインのみ文字列を取得できるので、後はDetailの表示を対応させる。

ajax-test-detail.vmの

<a href="$!result.Detail.Url">$!result.Detail.Url</a>

<a href="$!result.Detail.Url">$!result.Detail.UrlDomain</a>

とすることで、getUrlDomain()で得たドメインのみ文字列を、リンクを維持したまま表示できる。 URLくらすとは別に、URIクラスを用いたHackもあり混乱したが、本質的には同じで、最初のドメインがProtocolとSchemeの違いくらいだが、その場合は

import java.net.URL;

をインポートする必要がある。 詳しくは、 http://koseki.hatenablog.com/entry/20070404/javauri

最後に、このままだとサムネイルからリンクを飛ばせなかったので、

<URLクラスを使いこなす> http://www.javadrive.jp/tutorial/url/index2.html を参考にして、

ajax-test-detail.vmのサムネイルを表示している箇所

 #ALtdcaption($l10n.TODO_SETFIELDNAME_THUMNAIL)     
 #ALtditemheader()       
-<img src="http://capture.heartrails.com/?$!result.Detail.Url">     
 #ALtditemfooter()

 #ALtdcaption($l10n.TODO_SETFIELDNAME_THUMNAIL)
 #ALtditemheader()
+<a href="$!result.Detail.Url">
+<img src="http://capture.heartrails.com/?$!result.Detail.Url"></a>
 #ALtditemfooter()

に変更した。 これで基礎編終了! 時間がかかったがすごく勉強になりました。