インターン2日目(バリデート機能、URL一覧表示、サムネイル)

インターン2日目です。 まず、前回の内容を自分のパソコンに反映させるのにすこし手間取りました。 本日は大きく分けて5つのことをしました。 といいましても、hackの記事や先輩の説明あってこそのことでした。

テスト欄にURLを追加する際のバリデート機能を追加

hackの記事を参考にして、TestFormData.java内のsetValidateというクラスを見つけました。 その中にはタイトルやメモの字数制限を設ける機能がありましたので、この後にURLに関するバリデート機能をつけました。

なんと書くかはhackを参考にし、以下の2文を追加することにより、URL欄から全角をはじくバリデート機能を実装することに成功しました。

  url.limitMaxLength(1000);//1000文字に制限
  url.setCharacterType(ALStringField.TYPE_ASCII);//半角英数記号に制限

テスト詳細画面にて、記入したURLが正しく表示されない問題を解決しました。

やり方については先輩の助言とhackを参考にしました。testの項目を作る際のURLの欄に書いたURLをsetする文と、getする文を加えることにより、成功しました。


testの一覧画面にて、URLがリンク付きで表示されるようにしました。

hackの内容を参考にしながら、以下のようにしました。 ajac-test-list.vm内の100行目あたりに以下の文を追加しました。 これにより、$!record.Urlがaタグで表示されるようになり、なおかつリンク先も$!record.Urlになります。

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


では、$!record.Urlとは何なんなのかということですが、testの項目を作る際に入力したURLをデータベースから呼び出してきているのは明らかです。

ではどこから呼び出してきているのか?という疑問が浮かびますが、これについては小嶋先輩のわかりやすい説明でわかりました。 TestSelectData.javaというファイルの中のgetResultDataの中で処理が行われているとのことです。 具体的にはこの中で、testの項目を作るときに記入したタイトルやメモなどのデータをデータベースから取ってきているとのことです。そして、その取ってきた値をvelocity(webページ上の見た目を司る)の中で関連付けて、表示させているということです。

自分の中でのイメージとしては、データベースというユーザーによって入力されたデータを保管する場所と、webページ上で表示させるためのvelocityの間を仲介する役割を持つのがjavaファイルによる処理といった感じです。(あくまでイメージ)


testの詳細画面にて、サムネイルを表示させる。

まずは詳細画面にて、「サムネイル」というサムネイルを表示させるための領域がいるので、velocityファイルの内容を変えました。 ajax-test-detail.vmファイルのなかの40行くらいの場所に以下の文を追加しました。 インターン1日目でURLの欄を追加したのと同じ方法です。

#ALtdcaption($l10n.TODO_THUMNAIL)

しかし、このままでは「$l10n.TODO_THUMNAIL」とそのまま表示されてしまうので、 AipoLocalization_ja.propertiesの中で「$l10n.TODO_THUMNAIL」と日本語の「サムネイル」を関連付けます。 以下のようにしました。これもURLの記入欄を追加した時と同じ作業でした。

TODO_THUMNAIL=サムネイル

次に、サムネイルそのものを表示させる方法です。

TestResultData.java内の140行目あたりに以下の文を追加しました。 これにより、クリックされた項目内のURLをデータベースから取得します。(おそらく)


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

そして

以下の文を上記の#ALtdcaption($l10n.TODO_THUMNAIL)の下あたりに追加しました。 こうすることにより、開いたtest項目に応じて、この一文でサムネイルを表示できるようです。


#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()

詳細画面のURLの中から、ドメイン部分だけを取り出して表示させる。

過去のhack記事を見ますと、正規表現を使用していましたので、正規表現について調べました。 URIなるものをインポートするらしいがまだよくわかりません。


その他気がついたことやこれからのこと

・就業時間の最後にその日にやったことをhackにまとめて書くと、なにをしたか、どんなコードを追加したか思い出したりチェックするのが面倒なので、作業中に一段落ついたら(コミット&プッシュするタイミングがいいかも)その都度、hackの記事を書くと記憶の定着にもなるし、hackの内容も充実したものになると思いました。 (この記事は上記の方法で書きました。)

・引き続き、インターン以外でのjavaの学習が続けていきたいと思います。

・なにか間違った内容などがありましたら、気兼ねなく指摘していただけたら幸いです。