のアーカイブ

Eclipseにおけるブレークポイントを利用したデバッグ

2016年9月9日

 Eclipseではコード画面の左端の灰色のラインをダブルクリックすることで,その行にブレークポイントを設定できる(shift+command+bでも可).  ブレークポイントを設定しておくと,その行の処理に辿り着いた時にプログラムが一時停止し,その状態で変数の値などを確認できる.  そこからさらにプログラムの処理を少しずつ進めながら,どの処理を通ってどう値が変わっていくかを確かめることが出来る.その具体的な方法は以下の通り. 1. F5(ステップイン):
続きを読む

データベースの参照失敗

2016年9月8日

 デバッグをしていて,ユーザー管理画面ならユーザーデータが,タイムカード管理画面ならタイムカードが,何も表示されなくなることがある.そのときに新しくデータを追加しようとすると, 「データの追加に失敗しました。大変申し訳ございませんが、しばらくたってから再度お試しください。」 というようなエラーメッセージが表示されてデータの追加に失敗する.  このとき考えられる原因のひとつは,データベースの対象のテーブルの構造を書き換えている可能性である.これを避けるために,sqlフ
続きを読む

条件文の評価順序

2016年9月7日

``` String str = null; if (str != null && str.length() > 1) { } ```  Javaでは上記if文において,str != nullが評価された時点でstr.length() > 1を評価せずに脱出する.  一方でCやC++ではこの評価順序がコンパイラ依存らしく,str.length() > 1を評価してしまう可能性もあるらしい.
続きを読む

equalsメソッド

2016年9月7日

``` String str = null; str.equals("hoge"); // A "hoge".equals(str); // B ```  上記二つのequalsの使い方は,全く同じことをしているようで,実際には違いがある.  Aはnullにequalsメソッドを呼び出させようとしているので例外が発生するが,Bは単にfalseが返される.
続きを読む

webアプリにおいて任意の動作に利用されているクラスの調べ方・補足の補足の補足

2016年9月6日

 何か動作をさせてもログに表示されないことがある.原因はよくわからないが,一度ログをクリアして,画面に表示されている通りにコマンドを打つと直ることがあるらしい.  動作の監視以外にも,例えばそのページに用いられている特徴的な文字列を検索することでも関連するクラスを探すことができるが,このとき,ファイル検索でその文字列を検索しても.propertiesで変数に入れられている文字列は引っかからないことに注意しなければならない(変数名の方は引っかかる).この場合は,直接.pr
続きを読む

webアプリにおいて任意の動作に利用されているクラスの調べ方・補足の補足

2016年9月5日

Networkタブの上部に「XHR」「JS」「CSS」……とボタンが並んでいる. tmplateを調べたい場合にはXHRを選ぶこと. 動作させてもログに何も表示されないというときは恐らくXHR以外が選ばれている.
続きを読む

Javaにおける文字列の比較

2016年9月2日

``` String str = "hoge"; if (str == "hoge") { System.out.println("equal"); } else { System.out.println("not equal"); } ```  上の例を実行した場合,not equalが出力されることがある.これはStringの比較は,中身ではなく参照先を見ているからだとか.とかく,そういうわけなのでJavaにおいて文字列の比較をしたければ必ず以下の
続きを読む

vmからjavaへ値を送信する方法

2016年9月1日

vm側でinputタグを使用すれば,name=で指定した名前で,value=に指定した値を送信できる. 送信した値を取得する方法 1. rundata.getParameters().get型("名前")で取得する.この場合はinitメソッドで実行すればいいらしい 1. aipoでは,inputで指定した名前とjava側の変数名が一致していれば自動で取得されるようになっている
続きを読む

webアプリにおいて任意の動作に利用されているクラスの調べ方・補足

2016年8月31日

[前回](http://hacknote.jp/archives/21775/) ネットワークタブにおいて表示されたリクエストの欄をクリックすることでプレビューが表示される. 一つの動作で複数のクラスからのリクエストがあった場合は,プレビューを表示させることでどのクラスを見ればいいかを判断することができる.
続きを読む

URLをドメイン表示する

2016年8月30日

詳細画面でURLをドメイン表示する. 1. URLを渡す前に,JavaのURIクラスのコンストラクタに通す 1. URIクラスのコンストラクタに渡すと部分ごとに分割されるので,ドメイン表示に必要な部分をgetScheme,getHostメソッドで取り出す 1. 取り出した二つの部分文字列を"://"で繋いでドメイン表示が完成 ちなみに,上記二つのメソッドは,渡した文字列がURLとして解決できていなかった場合にnullを返すことになっている.
続きを読む

サムネイルの表示

2016年8月30日

詳細画面でURLが示すサイトのサムネイルを表示させる. 1. http://capture.heartrails.com/help/make_thumbnailで適当なサムネイルを作成する 1. 貼り付け用タグが表示されるので,それを見ると,src=部分に"http://capture.heartrails.com/free?***"を指定し,"***"のところにサムネイルを作りたいURLを指定すれば良いとわかる 1. TestResultDataクラスに,URLを
続きを読む

URL表示欄の追加

2016年8月30日

一覧からアイテムを選択した時に現れる詳細画面にURLを表示する欄を追加する. 1. リクエストURLを監視すると,TestDetailScreenクラスが動作していることがわかる 1. TestDetailScreenクラスを見ると,TestSelectDataクラスを利用して値などを操作し,ajax-test-detail.vmでフォームのレイアウトを決定していることがわかる 1. 既に実装されているタイトルやメモの入力欄が上記のクラスやファイルにおいてどのように
続きを読む

データベースの確認

2016年8月30日

1. pgAdmin3を起動 1. サーバグループ→サーバ→localhostを右クリックし,「接続」を選択 1. localhost→データベース→aipo_test→スキーマ→public→テーブル→eip_t_testをクリックし,ツールバーから「選択オブジェクトでデータをビュー」を実行
続きを読む

URL入力のバリデート

2016年8月30日

1. urlをALStringFieldとして宣言したが,その定義を見ると,各文字種を表す定数が見つかる 1. setCharacterTypeメソッドにその定数を渡しておけば,バリデート用メソッドを実行した時にそれに合わせてバリデートされる
続きを読む

URL入力欄の追加

2016年8月30日

Test追加ボタンで現れる入力フォームにURL入力欄を追加する. 1. リクエストURLを監視すると,TestFormScreenクラスが動作していることがわかる 1. TestFormScreenクラスを見ると,TestFormDataクラスを利用して値などを操作し,ajax-test-form.vmでフォームのレイアウトを決定していることがわかる 1. 既に実装されているタイトルやメモの入力欄が上記のクラスやファイルにおいてどのように記述されているかを見て,それ
続きを読む

webアプリにおいて任意の動作に利用されているクラスの調べ方

2016年8月29日

ページ上で何もないところを右クリックして、「検証」を選択.  画面下部に色々表示されるので,「Network」タブを選択. 左上の「クリア」アイコンを押してから,調べたい動作をさせると,その時に発生したイベントがどのクラスによるものなのかがログに表示される. 変更したい機能に関しては上記手順で関係のあるクラスを探していけば良い.
続きを読む