2008-01-01から1年間の記事一覧

内部クラスでハマる

SAStrutsで、Actionの中に内部クラスを作って、そいつをSessionスコープのFormに持ってユースケース中で使いまわす… というようなことをしようと思ったら以下のような感じではまりました。Formのインスタンスが新しいリクエストを送っても新しくならずに古い…

MayaaとSAStrutsのちょっと相性の悪いところ

今はSAStruts + mayaaで開発しているのですが、S2Struts + mayaaのノリでStrutsのtaglibなどを使うとpublicフィールドとの相性が悪くてうまく動かないことがありますね。mayaaの利点のひとつに既存のtaglibを流用できるというのがあるので、これはちょっと痛…

S2Unit4でHttpServletRequestをモックにしたテストが失敗する

EasyMockサポートを使ってテストをしたときのことです。 HttpServletRequestに@EasyMock(register=true)を付けてS2コンテナからHttpServletRequestを取得しようとすると、TooManyRegistrationRuntimeExceptionが発生しました。昔Junit3でやったときは確かに…

SAStrutsのJUnitテストでActionに自動DIしたい

ActionのJUnitテストをしようとするとActionCustomizerでNullPointerExceptionが発生します。アクションマッピングを作成しようとしているんですが、JUnitテストなのでそいつをセットするModuleConfigがなくて落ちるわけですね。 ちょっと調べてみたところ、…

Mayaa再入門

あの頃は何がなんだかよくわからなかったMayaa。だが今ならきっと何かがわかる! というわけでMayaaの便利機能をドキュメントから探して使ってみました。 default.mayaa コンテンツページの<h1>の中身ををレイアウトページの<title>内にも設定するのに使用しています。 </title></h1>…

s2jdbc-genでコメントを管理したい

前置き 管理したいですよね。 というわけで調べてみたらこういうエントリがありました。 http://d.hatena.ne.jp/akiraneko/20081009/1223562878 DB → コメントSQLなAntタスクです。 しかし…そうじゃなくて、Entity → コメントSQLがやりたい。 やりかたもこの…

s2jdbc-gen使ってみた

私は「ant?ビルドとかするやつ?」ってレベルなので、Entityが生成できるまでに何日かかることやら…と思っていましたが、またもやあっさりとできてしまいました。 Doltengの時と同じパターンですね…。 つくづくすごいことです。ただ1箇所、ドキュメントでは…

寄り道、寄り道。

今日は業務報告WEBアプリのHTMLを作成。 …と思ってたが、ほとんどできなかった。 途中で 「そういえばXHTMLって何だ?何がすばらしいんだ?」 「tableタグでレイアウトをするのは良くないらしいけど、何で?」 「WTPのHTMLエディタって、floatがちゃんと表示…

amaterasERD使ってみた

amaterasERDを使ってER図を作成してみました。 もし実際に会社に導入されれば保守するのは自分以外の人間だろうし、ER図を作ってあげたほうがいいだろうと思いまして。amaterasERDを使ったポジティブな感想 ドメインが使える! エンティティの自動レイアウト…

環境構築

Doltengを使ったらあっさりと環境が構築できてしまいました(でも最初は何か設定を間違えていたみたいで、ずっとあれこれ悩んでいたのは内緒です)。 すごい…けど、一体どうやって動いているのかがよくわからないのは嫌ですねえ(自力では構築できないくせに…

やってしまへ

ウチの会社の、週ごとの業務報告をする手続きが新しくなったんですが…次のようになりました。 媒体はExcel。 別ファイルでマニュアルが付いており、必須や文字種などの制限が書いてある。 もちろんセルに入力制限など設定されていない。 なんかもう頭にきた…

RequestActionMapping, SessionActionMapping

はあ。

RedirectingActionForward

ActionRedirectに手をついてあやまれ。

PlugIn

起動時になにやらやらかすためのもの。

ForwardingActionForward

デフォルトでsetRedirect(false)するActionForward。 ActionRedirectと違って全く可愛げはない。コンストラクタ以外何もないし。

ActionServletWrapper

何のためにあるのかさっぱりわからない…。Javadoc読んでもわからない…。

ActionRedirect

ActionForwardのRedirect版。 リダイレクトパラメータは手動でセット。アンカーまでセットできちゃう。 でもどこからも使われていない…。

ActionMessages

Sessionに登録したときにメッセージを除去する指標としてaccessedを使う、と。

Action

おなじみAction。 isCancelledでGlobals.CANCEL_KEYが使われていて、CancelTagではConstants.CANCEL_PROPERTYが使われていた。なんだ?と思ったらActionContext#setCancelledが橋渡しをしていた。理由は謎。

WildcardHelper

ワイルドカードマッピングに使う。

TokenProcessor

2度押し防止機構。 サーブレットコンテナは同一セッションに対してアクセスする2つのスレッドに対し、異なる2つのHttpSessionオブジェクトを返すことができるので、同一セッション上の同期はできない、と。

ServletContextWriter

ServletContext.logを使って出力を行うためのクラス。何に使うのかは不明。

ResponseUtils

filterは文字列をHTMLとして解釈されないようにエスケープ。 encodeURLはエンコードに使うメソッドが動的に変更できるようになっている…。

RequestUtils

いろんな機能。 ActionForm作っちゃう機能はCreateActionFormとほぼ同機能。 populateはほとんどがMultipartRequestのための処理。何やってんのかはさっぱりわからない。 printableURLってなんに使うの?

ModuleUtils

ModuleConfigを取得する機能と、パスからモジュール名を取得する機能と、モジュールを切り替える機能。 モジュールを切り替えるときはメッセージリソースも一緒に切り替わる。

ModuleException

ActionMessageをあらかじめ内包している。んでExceptionHandler(Commandじゃない方)をExceptionConfigに指定しておけばそいつがこのメッセージをしかるべきスコープに登録してくれる。

MessageResourcesFactory

ただの抽象ファクトリ。

ReloadPropertyMessageResources

まあ、おまけで。HotDeployのときに使うやつ。 メッセージを取得するたびに読み込んだキャッシュを全部消して新しく取得しなおしてる。

PropertyMessageResources

メッセージリソースをプロパティファイルに求めるMessageResources。 ロケールとメッセージキーでメッセージを要求すると、「configプロパティ + "_ロケール.properties"」をパスにしてプロパティファイルを読み込み、メッセージを返す。 ロケールを指定しな…

MessageResources

メッセージリソースに関するFacadeクラス? メッセージをMessageFormatにしてキャッシュしたり、メッセージが見つからなかったときはnullを返すか見つかりません的なメッセージを返すか、メッセージをエスケープするかとかしてる。