コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

SAStruts

Flex Builderプロジェクト

Eclipseでどうやってプロジェクトを作るんだと思ってたら、意外と簡単なんだということが。 http://code.nanigac.com/source/wiki/view_title/597/Flex%EF%BC%8BSAStruts%E7%94%A8%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E4%BD%9C…

SAStrutsというか、Strutsのtiles

以下のような、tilesのcontrollerUrlの検証をしています。 <tiles:include controllerUrl="hoge" page="foo" /> 動きがよくわからないのでソースをざっと読んでみました。 キーは、org.apache.struts.taglib.tiles.InsertTagクラスです。 最終的には、以下の処理をしています。controllerは、controllerUrlで指</tiles:include>…

redirect=trueとActionMessagesExceptionの組み合わせの挙動

@Execute(validator = true, input = "index.jsp", redirect = true) public String test() { if (check) throw new ActionMessagesException("aaa"); return "index"; } のようなアクションがあったとき、returnで指定されたページへはredirectします。 ま…

Formのパス分割2

http://d.hatena.ne.jp/kuwalab/20080818/1219062504 の続き。 コメントをいただいたので、確認。 Resourceのnameを教えていただいたように変更。 package sample.action.foo; import javax.annotation.Resource; import org.seasar.struts.annotation.Actio…

Formのパス分割

大規模なアプリケーションでは、パスを分割することもできます。例えば、/aaa/bbb/のパスに対応するアクションクラスは、ルートパッケージ.action.aaa.BbbActionになります。 http://sastruts.seasar.org/featureReference.html#Action にあるように、Action…

パターン

http://d.hatena.ne.jp/dewa/20080626/1214451353 このあたりをベースにして考える。

ドキュメントで確認する、SAStruts 1.0.4-rc1

SAStruts 1.0.4-rc1が出ました。 ドキュメントを参考に、どんな機能か確認です。 [SASTRUTS-87] - @Executeでredirectの指定をできるようにしました http://sastruts.seasar.org/annotationReference.html#Execute これは、地味だけどほしかった機能です。 …

tilesの検証2

SAStrutsでtilesを検証中。 1ページごとに、レイアウトに部品を組み込むJSPを画面ごとに作らなければいけないのがちょっと大変。 たとえば、以下のようにレイアウトを以下のように定義しておきます。 <%@ page language="java" contentType="text/html; char…

独自のバリデータ(Validator)を作ってみる

SAStrutsでは独自バリデータも作れます。 生Strutsで作っていたものがある場合には、それを流用することもできます。 今回は、あまりいいネタもなかったので、特定の数の倍数でないとエラーになるバリデータを作ってみました。 アノテーションを作る まずは…

tilesスミマソン。

jsp:includeがいまいち使えなさそうなので、tilesを検証。 生Strutsでもtilesは使ったことがなかったので、初挑戦。 チュートリアルのソースをぱくって、実行。 ・・・簡単だ。 jsp:includeでやりたかったことも問題なくできて。。 柔軟でした、tiles。食わ…

includeの検証2

include元のテストで以下のソースを書きました。問題なく動くようです。 <%@page pageEncoding="UTF-8"%> <p>テスト</p> <p>${hogeDto.hogeName}</p> <p>${pageContext.request.contextPath}</p>hogeDtoは、sessionScopeにおいてあるDtoです。共通のスタイルの読み込みとか、共通…

今日やることメモ

エラーハンドリング 今日はやらない

続・意図しないパラメータ

ActionFormを分ければ問題ないです。 この問題があるので、次のリリースからActionFormを分けることを推奨するように変更します。 また、DI用のフィールドはprotectedにして、@Resourceをつけるというのが推奨になります。 ぱる日記 これってどうなん?のコ…

意図しないパラメータ

SAStrutsだと出力データもActionのフィールドとして定義するんだけど、そのデータの初期値をリクエストパラメータで設定できるっていうことになると思うんだけど・・ユースケース単位でActionを用意するんであれば、意図しないパラメータがセットされてうん…

@Binding

アクションフォーム * クラス名は、アクション名Dto。 * publicフィールドにて用意します。 * @ActionFormアノテーションを付与します。 * オブジェクト名は@Bindingアノテーションを使って簡潔にします。(推奨は、"dto") * @Bindingアノテーションは最初…

includeの検証

SAStruts 1.0.2で検証。 指定されているのにs2filterに制御が来ないなら、リクエストは 取得できないので、jsp:includeを使った場合に、 s:formのaction属性の自動計算やf:url()は使えないことになります。 jsp:includeとs:formもしくはf:url()併用で例外 と…

Beansをもてあそぶ。

SAStrutsもちょっとずつ、ちょっとずつ使って何とか形になってきました。 実際に出そうな画面を実装して、どうやって実装しようか考えながらやってます。今日は、Beans。 Beans自体の機能は非常にコンパクトで簡単に使えます。(よくexecuteメソッドを書き忘…

DoltengでSAStruts+S2Dao。ちょっと前進

DoltengでSAStruts + S2Daoプロジェクトを作成してみました。けど、サーバー起動時に例外。 http://d.hatena.ne.jp/kuwalab/20080512#1210595049 は、わかりました。 といっても、Teeda+S2Daoのプロジェクトを作成して、違いを探しただけですが。 jdbc.dico…

DoltengでSAStruts + S2Daoプロジェクトを作成する

DoltengでSAStruts + S2Daoプロジェクトを作成してみました。 けど、サーバー起動時に例外。 DEBUG 2008-05-12 12:19:29,151 [main] S2Containerを作成しました。path=cooldeploy-autoregister.dicon 2008-05-12 12:19:29,213 [main] ERROR org.apache.catal…

メッセージリソース

http://d.hatena.ne.jp/kuwalab/20080211#1202716784 で書いていた件で今日最新バージョン(1.0.2-rc2)でやったらうまくいきました。 ここまで全然確認してなくてやっと試しました。 bundle属性は書かなくていいよと。 @Required(target = "insert", arg0 =…

Validatorでエラーになった項目の色を変えてみる。

全部できなかったけど、調査は完了。目途は付いた。 Validatorは結局Strutsのorg.apache.struts.validator.FieldChecksクラスでチェックしている。 そのチェックメソッドは引数に、requestとfieldを持っているので、field.getKey()でチェックする項目のname…

Beans

仕事が落ち着いて少し時間がとれるはずなのに、体調が。 まあいいや、とりあえず、Beansをこねくり回してみましょう。 http://s2container.seasar.org/2.4/ja/beans.html まず、コンバータのテスト。 http://d.hatena.ne.jp/proust/20080209#p2 あ、だめだ、…

スマートな画面遷移

最近は、体調が悪くて家で死んでた。 ところで、 http://d.hatena.ne.jp/dewa/20080222#1203683563 より。 エントリを見たあと、自分で書いてきたコードを見直してみると public String search() { return "search.jsp"; }や public String reg() { return "…

diconファイル。

http://sastruts.seasar.org/fileReference.html#convention http://sastruts.seasar.org/fileReference.html#creator http://sastruts.seasar.org/fileReference.html#customizer Developer☆STYLEのコメントより diconファイルの説明。 customizerはよく使…

やることまとめ。

検証することのまとめ。 S2JDBCのログ(登録・更新・削除時のログ) フィールドの自動右trim 独自Validatorの作成 アクセスログ(Filter) トークンのアノテーションでの指定 JSPのインクルード(SAStruts関係なし!)

続トークン(SAStruts限定でないけど)

トークンってどのあたりで使用しますか? 新規登録だと業務的なキーの重複チェックで処理するし、 更新だとJavaScriptのダブルサブミット対策とバージョン番号による排他制御を 使えば、代用できるっぽいので、なんとなく最近、要らない気がしているので。。…

トークンをアノテーションでいじってみる。

SAStrutsで自前AjaxアノテーションとAOPを使って超簡単にAjaxできてしまうプログラムを書いてみた。 出羽ブログ 〜はてな版〜 から、パクリで。Ajaxではなくトークンですが。 トークンは毎度ほとんど同じ処理なので、コードを書きたくないからInterceptorで…

ComplexWhere

SimpleWhereと同じ感じで使えました。 new ComplexWhere().starts("hoge", hoge) .starts("foo", foo) .contains("hoge2", hoge2) .eq("foo2", foo2).and(new SimpleWhere().eq("hoge3",hoge3)) .or().eq("foo3", foo3)うーん。あんまり複雑なら、SQL書いた…

備忘録

インクルードもテストして見る。(SAStrutsでなくて、JSPだけど)

S2JDBCのexcludesWhitespace

ちょっとはまったのでメモ。動いてみれば、納得の動き。 S2JDBCのSimpleWhereは、プロパティがnullの場合には条件に含まれませんが空文字("")の場合には条件に含まれます(そうでないと困ることもあるかもしれないし)。 ただし、SAStrutsで利用する場合に…