ひがやすを技術ブログ

電通国際情報サービスのプログラマ

Seasar

Teedaのメリット・デメリット

Teedaのメリット・デメリット 大体同意見ですが、私にとって最大の誤算は、開発者のJSFアレルギーですね。JSFアレルギーというより、新しい技術に対するアレルギーといったほうが正しいかもしれません。 それも間違ってるかな。DIみたいな小難しい技術もそれ…

HibernateとS2DaoとS2JDBCの考え方

HibernateはEntityを中心に考えます。つまり、Javaを中心に考えるということですね。エンティティモデルとERモデルは、一致する必要はなく、それぞれでモデリングして、Hibernateが間をつなぎます。 メリットは、エンティティの設計がデータベースに引きずら…

ドメインモデル

「抽象クラスを継承してエンティティ特有のビジネスロジックを実装する」ってことは、そのエンティティは貧血でないドメインオブジェクトってことでしょうか。 SAStrutsの機能リファレンスでは「複数のアクションから共通に使われるような機能は、サービスク…

developerWorks:WASにTeedaをデプロイする

Seasar2 と Teeda を利用した Web アプリケーションを WebSphere Application Server にデプロイする developerWorksにTeedaをWASにデプロイするための記事が出てます。今後は、定期的にdeveloperWorksに記事を掲載していく予定です。こんなのを書いてほしい…

S2JDBCの自動生成

S2JDBCの自動生成サポートは、2つ考えています。1つは、データベースの情報から、Entityを作る機能。これは、おもにDBAがいる開発現場向きの機能です。 作るEntityは、GenerationGapパターンで作ります。例えば、従業員用のEntityの場合、AbstractEmployeeに…

Seasar2の今後のロードマップ

Seasar2は、2.5でやろうとしていたS2PersistenceとS2PresentationをS2JDBC、SAStrutsという形で、2.4ベースで実装してしまったため、2.5を出すことはおそらくないでしょう。 また、コンテナに手が入ることももうないと思います。やるべきことはやったと思う…

SAStruts 1.0.0リリース

リリースノート Improvement [SASTRUTS-10] - urlPatternで英数字以外も対象にしました ダウンロードはこちら http://sastruts.seasar.org/download.html SAStrutsの特徴は次の7つです。 Strutsベース Strutsの薄いラッパーなので、ソースコードが少なく(主…

開発者(会社)募集

あるお客様が、Seasar2を使った案件の開発者を探しています。ご興味のある方は、私(higa_at_isid.co.jp)の方までメールください。 条件は以下のとおりです。 2人/月 できればお客様のところで一緒に開発してもらいたいが、受託も可。 スタートは早ければ早い…

SAStruts rc8リリース

リリースノートはこちら。 New Feature [SASTRUTS-9] - JSPのダイレクトアクセスを禁止できるようにしました ダウンロードはこちら。 http://sastruts.sandbox.seasar.org/download.html 今回は、機能追加で、Filterの修正のみなので、リリース計画に変更は…

JSPのダイレクトアクセスを禁止する

JSPへのダイレクトアクセスを禁止したいという方が、何人かいらっしゃるようなので、SAStrutsのFilterで、GETで*.jspへのアクセスを禁止できるようにしました。デフォルトは、禁止するようになっています。web.xmlのinit-paramでアクセスできるように変更す…

SAStruts rc7リリース

リリースノートはこちら。 Bug [SASTRUTS-8] - Java6でバリデーションエラーになったときに無限ループしていたのを修正しました ダウンロードはこちら。 http://sastruts.sandbox.seasar.org/download.html rc6からの移行は、jarファイルを置き換えるだけで…

SAStruts rc6リリース

リリースノートはこちら。 Bug [SASTRUTS-7] - URLとアクションのマッピングを厳密にやるようにしました これまで、対象のURLがなくて、IndexActionが存在すると、IndexActionに遷移していましたが、遷移しないようにしました。 これまで、ルートパッケージ.…

SAStruts rc5リリース

Bug [SASTRUTS-6] - httpではじまるパスに遷移できない ダウンロードはこちら。 http://sastruts.sandbox.seasar.org/download.html rc4からの移行は、jarファイルを置き換えるだけで大丈夫です。 よろしくお願いします。

SAStruts rc4リリース

Bug [SASTRUTS-5] - COOL deployに対応しました ダウンロードはこちら。 http://sastruts.sandbox.seasar.org/download.html また、今回のリリースのにあわせて、正式リリースの予定も若干変更します。22日の午後にSandbox卒業を申請して、23日に正式リリー…

SAStruts rc3リリース

SAStruts rc3をリリースしました。リリースノート Bug [SASTRUTS-4] - ダウンロードで実行メソッドの戻り値をnullにするとぬるぽになる ダウンロードのサンプルも追加しました。SAStrutsのダウンロードはこちら。 http://sastruts.sandbox.seasar.org/downlo…

SAStrutsの基本方針はプログラマの解放

開発者(主にコードを生産する人)はクラス設計が激しく必要なんだと思った。 サンプル見てると簡単にコードを生産できるけど、それだけじゃすぱげってぃこーどが沢山できてしまう気がした。 SAStrutsの基本方針は下記のとおり(他にもあるけど引用に関係のあ…

SAStruts rc2リリース

Release Notes - SAStruts - Version RC2 Bug [SASTRUTS-3] - Actionの遷移先がきれいなURLの時に遷移に失敗していたのを修正しました Improvement [SASTRUTS-2] - ファイルアップロードに対応しました New Feature [SASTRUTS-1] - URLをエンコードするファ…

URLをエンコードするファンクションを追加

URLをエンコードするファンクションを追加しました。 こんな感じで使います。 <a href="${f:u(url)}">...</a>なんで"u"何だって? Railsにあわせているから。

SAStrutsのリリース予定

SAStrutsは、この後特に問題がなければ、水曜日の午後にSandboxの卒業申請をし、手続き終了後(たぶん木曜)正式版をリリースする予定でーす。

sa-struts-tutorial更新

インデックス用のページ(http://.../sa-struts-tutorial)から各サンプルページに遷移できるようにしました。Tokenのサンプルもわかりやすく書き換えました。 もし、既にダウンロードしたけど、何を試したら良いかわかりづらいと思われた方は、良ければ、もう…

もうscaffoldはいらないかも

sa-struts-tutorialのプロジェクトを作っていて思ったんだけど、もうscaffoldとかいらないかも。 たくさんソースコードを書く必要があるなら、scaffoldで自動生成すると、「あぁ、こんだけ楽できる」と思ってうれしいんだけど、SAStruts, S2JDBC, Beansだと…

SAStruts RC1リリース

SAStrutsのRC1をリリースしました。 http://sastruts.sandbox.seasar.org/index.html ダウンロードはこちら http://sastruts.sandbox.seasar.org/download.html SAStrutsの特徴のひとつは、ドキュメントの充実。いろんなサイトを見る必要はなく、SAStrutsの…

From Ruby to Java

本当は、Rails風にしようと思ったわけではなく、ふたがわさんがCubbyがいいっていってたので、インスパイヤされて作ったらRails風になっちゃったって感じ。 http://locahost:8080/sa-struts-tutorial/loginにアクセスすると、tutorial.action.LoginAction#in…

2008年の抱負

書いてもどうせ実現できないので、あまり書かないことにしますが、とりあえず直近でやっていることだけ。 去年やるといってできなかったことを、今2つやってます。 1つは、SAStrutsのリリース。コードはできていますが、ドキュメントがまだ足りないところが…

Super Agile Struts開発記その11 - 遷移先の指定を簡易化

これまで、遷移先は、下記のように指定してきました。 @Result(name = "list", path = "/employee/list.jsp")1つだけならまだいいんですが、複数あるとちょっとうざったい。 @Results({ @Result(name = "list", path = "/employee/list.jsp"), @Result(name …

脱DTO

SAStrutsは、1ユースケースで1アクション。基本的には、Serviceクラスもなければ、DTOもありません。例えば、従業員の一覧に部署名も出力するには次のようになります。 <c:forEach var="e" items="${empItems}"> <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> </c:forEach> @Result(name = "list", path="/employee/list.jsp") public class EmployeeAc…

Super Agile Struts開発記その10 - Validator

commons-validatorを使った検証は、フィールドにアノテーションをつけることで行ないます。 @Required @IntegerType public String arg1;メッセージを指定したい場合は、msg属性で指定します。 @Required(msg = @Msg(key = "errors.required"))メッセージの…

Super Agile Struts開発記その9 - 検証メソッド

検証をcommons-validatorではなくメソッドで行いたい場合は、引数がなく戻り値がActionMessagesのメソッドを用意し、そのメソッド名を@Executeのvalidate属性で指定します。 検証メソッドがエラーのメッセージを返した場合は、実行メソッドは呼び出されず、@…

Super Agile Struts開発記その8 - ActionFormの更新

ActionFormの更新機能をサポートしました。特徴的なのは、Strutsのタグを利用せず、JSTLのみ(html:formは使うこともあるかも)で開発ができることです。 例えば、nameプロパティを更新するには、つぎのようなJSPを用意します。 <form action="bbb2.do" method="post"> <input type="text" name="name" value="${name}"/> <input type="submit"/> </form>input系のタグのname属性を…

Super Agile Struts開発記その7 - ActionFormの分離

SAStrutsでは、ActionとActionFormは、基本的に同じクラスで実装しますが、複数のActionで同じActionFormを共有したくなることもあるでしょう。 その場合、ActionFormをPOJOのDTOで作成し、Actionのプロパティに@ActionFormアノテーションをつけます。 publi…