2009-01-01から1年間の記事一覧
Galileoのアップデートサイト重すぎ!という訳でミラーサイトに変更。 [Window]->[Preferences]->[Install/Update]->[Available Software Sites] LocationのURLの http://download.eclipse.org/ を http://ftp.yz.yamagata-u.ac.jp/pub/eclipse/ に置換する…
TextFieldやTextArea用のPlace Holder(入力がない場合はグレーの文字でヒントが出るやつ)のIBehaviorを書いてみました。 書いた、といってもSimpleAttributeModifierと大して変わらないですが。jQueryとjQuery.placeholderをこのIBehaviorと同じpackageにお…
HibernateなどORMでentityがenhanceされているとWicketのConverterLocatorはObject.toString()の値を返してしまいます。Application.newConverterLocator()は、内部にclass名とIConverterのMapを持ち、IConverterLocator.getConverter(Class type)は単純にMa…
4月の25〜26日に吉祥寺は前進座劇場で行われたLIVE雅咆2009〜春の祭典スペシャル!の動画ができました。 是非ご覧ください!
対DoS攻撃用のIRequestCycleを書きました。 あるIPアドレスから同じURLへ一定期間(expire)に閾値(threshold)以上のアクセスがあるとDosAttackExceptionをぶん投げます。こういったものはServletFilterで書くのも手ですが、そうするとWicketTesterでテストを…
GuiceとQuartzのintegrationを書いてみました。 CronTriggerのみの実装です。 Jobをimplementsしたinterfaceにannotationを書だけで定期的にメソッドが呼ばれるようになります。 見たほうが早いのでとりあえずソース。呼び出すinterface。 package net.nagas…
DoCoMoのiモードIDを取得する場合URLにguid=onという文字列を含める必要があります。 簡単サインインの際はformのactionに加えるのですが、Wicketの場合は以下のように書きます。 Form<SignInPage> signInForm = new StatelessForm<SignInPage>("signInForm") { private static final</signinpage></signinpage>…
auの端末はinputタグのtypeがcheckboxの場合にvalueを指定しないとデフォルトで0が送信されます。 Wicketはこれをfalseとして解釈してしまうので、明示的に値を設定するListenerを書きました。 package net.nagaseyasuhito.sandbox.listener; import org.apa…
AuthenticatedWebSession.isSignedIn()がfinalなお陰でoverrideできず若干トリッキーな実装になっています。 が、やってる事は普通のservletでcookieを扱うのと変わりありません。 AuthenticatedWebSession.signIn(String username, String password)の代わ…
Mavenのセントラルリポジトリにないjarを扱う場合はプロジェクト直下にリポジトリディレクトリを作成して管理しています。 例えばguice+JPA用にwarp::persistというライブラリを使う事が多いのでこれを例にします。 といっても手順は簡単でjarファイルをgrou…
Wicketは文字列を実体参照としてhtmlに出力してしまうので、それを抑制するためにComponent.setEscapeModelStrings(boolean escapeMarkup)を片っ端から呼び出すListenerを書きました。 package net.nagaseyasuhito.sandbox.listener; import org.apache.wick…
国際化に対応するためプロパティファイルを参照するConverterを書いてます。 package net.nagaseyasuhito.sandbox.converter; import java.util.Locale; import org.apache.wicket.Application; import org.apache.wicket.Component; import org.apache.wick…