SAStrutsはActionクラスでActionFormを受け取るときは以下のように書く。 @ActionForm @Resource public FooForm fooBarForm; ここで注意したいのが(SAStrutsユーザーなら誰でも知っているが)、ActionFormは名前でインジェクションされるということ。つま…
たぶん、それはあなたがOperaを使用しているのが原因です。あなたがいかにOperaを愛しているかは知りませんが、ChromeやFireFoxを使用することでこの問題を避けることが出来るでしょう。一応情報共有のために書いておきました(笑)
このあいだ聞かれたときにすぐに答えられなかったから書いとく。あとから考えたら当たり前のことだったんだけどね。結論から言えば、全レコードをシーケンシャルアクセスしなければならないから遅い。以下、それについて具体的な話を展開するけど、最初に断…
みんな勝手にやってるような気がするけど一応書いてみる。SAStrutsでリダイレクト後にメッセージを表示したい場合、通常以下のようにすると思う。 ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GROBAL_MESSAGE, new Action…
今まで社内のライブラリを使用していたから知らなかったけど、JavaのSimpleDateFormat.parse()で実在日チェックは出来ないのね。 例 フォーマットが正しくなければParseExceptionがスローされるからOKだと思いがちだけど、以下のようなコードでもParseExcept…
自宅サーバでJava製のWebサービスを公開した。 みんなの日程表βこれは以前の私の幹事の経験から作成したもので、みんなの日程の都合をWebで共有できるというもの。幹事になると、みんなの日程の都合を聞いて回らなければならないわけだけど、必ずしも参加者…
と思ったら、MySqlのテーブルタイプがMyISAMだったのがいけなかったらしい。デフォルトだと、テーブル作成時にMyISAMがテーブルタイプとして適用けど、MyISAMはトランザクションをサポートしていないらしい。他のテーブルタイプとしてInnoDBというのがあって…
知識不足からちょっとハマったのでメモ。SAStrutsでリダイレクトした画面で一度だけメッセージを表示したい場合の処理コード。用途としては、処理完了後の完了メッセージを表示したいというケースで使える。 Actionクラス public HttpSession session; @Exec…
以前作った「メール見出しジェネレータ」というサービスを自宅サーバで公開。まぁ、HTML+JavaScriptだけで動くんで、サービスというよりツールですね。興味が出たら使ってみてください。トビの開発室(トップ) メール見出しジェネレータちなみに、自宅サー…
S2UnitによるDBのテストの最後は、削除(DELETE)。今回対象となるのは、論理削除ではなく物理削除。論理削除は、更新系の処理になるのでS2UnitでDB更新のテストを参照のこと。 テストの考え方 テスト用のデータを定義したExcelを用意 ExcelからDBにテスト用デ…
そういえばすっかり忘れていたけど、以前「SAStrtusで初回リクエスト時にクラスからアノテーション情報が取得できない?」という問題を取り上げた。とりあえず、この問題はCoolDeployの設定だと発生しないことが分かった。うーん、S2ContainerのHotDeploy機…
昨日のエントリーに続き、S2Unitを使ったDBのテスト方法を見ていきたいと思います。今回は、更新(UPDATE)のテストです。 テストの考え方 テスト用のデータを定義したExcel①を用意 テスト結果期待値のデータを定義したExcel②を用意 Excel①でDBにテスト用デー…
CRUD(Create Reference Update Delete)ってなんて読み方が一般的なんだろう。私は”クラッド”なのだけれど”クルド”って読む人もいるらしい。これは、情報は”生成”され、”参照”され、”更新”され、”削除”される、って意味の言葉だけど、この中で何が一番多いか…
Seasar2では、SqlReaderとXlsWriterというクラスが用意されていて、DBのテストが簡単に行えるようになっている。 使い方 重要な部分だけみるとこれだけ。 XlsWriter writer = new XlsWriter("FILE_PATH"); sqlReader.addTable("EMPLOYEE"); sqlReader.addTab…
Webアプリケーションの開発をEclipseで行っていると、Javaファイルを格納するフォルダと他のWebリソース(.jsp、.css、.js、など)を格納するフォルダがパッケージ/エクスプローラ上で離れているということがよくあります。よほど大きな画面を使っていない…
以前、どこかのブログで読んで「便利だなー」と思ったきり、すっかり忘れていたのでメモ。 一般的なリスト生成方法 Java5以降で、リストを生成するときは通常以下のようにする。 List<String> list = new ArrayList<String>(); コンパイル時にミスが発見できるジェネリクスを</string></string>…
Seasar2には、S2Unitという単体テスト支援ツールが含まれている。ツールと言っても、いわゆるJUnitみたいなもので、実際、S2UnitはJUnitを拡張して作られている。今回は、昨日の記事に書いたログイン検証インターセプタのテストをS2Unitで行う方法を書こうと…
先日、アノテーションを利用した認証について書いたが、1つ問題が見つかった。初回リクエスト時に、Actionクラスのアノテーション情報がリフレクションAPIで正しく取得できないインターセプタ内で、 invocation.getThis().getClass().getAnnotation(XXX.clas…
SAStrutsは内部でSeasar2を利用しているので、独自のインターセプタを定義してクラスに織り込むことが出来る(AOP)。Webアプリケーションといえば、ログイン検証はおなじみの処理だが、これはインターセプタを使って実現することができる。以下は、Actionク…
S2JDBCを使っていてはまったので日記に書こうと思います。S2JDBCで識別子(ID)を自動生成させるためには、 エンティティのプロパティに@GeneratedValueというアノテーションを付けます。 自動生成のタイプとして指定できるのは、 GenerationType.TABLE ⇒ テー…