タグ

Seasar2に関するpentaiのブックマーク (14)

  • tiles-defs.xmlなしのSuper AgileなTiles - ひがやすを技術ブログ

    TilesをJSPのみで使おうとすると、tiles:putで個別のレイアウトを指定するJSPとコンテンツ用のJSPを2つ用意しないといけないから、めんどくさいけど、tiles-defs.xmlを使うというのが、これまでのTilesの利用方法だと思う。 でもさぁ、tiles-defs.xmlのエントリを画面ごとに定義するなんて、俺には耐えられない。 そこで、見つけたのが、次の方法。まず、レイアウト用のJSPを用意する。 <%@page pageEncoding="UTF-8"%><%@taglib prefix="tiles" uri="http://jakarta.apache.org/struts/tags-tiles"%> <table width="100%"> <tr> <td colspan="2"> <tiles:insert page="/WEB-INF/layout/hea

    tiles-defs.xmlなしのSuper AgileなTiles - ひがやすを技術ブログ
  • SAStrutsでリダイレクトした後に一度だけメッセージを表示する - C.O.D -Coding or Die-

    知識不足からちょっとハマったのでメモ。 SAStrutsでリダイレクトした画面で一度だけメッセージを表示したい場合の処理コード。用途としては、処理完了後の完了メッセージを表示したいというケースで使える。 Actionクラス public HttpSession session; @Execute public String finish() { ... ActionMessages messages = new ActionMessages(); messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage("xxx")); ActionMessagesUtil.saveMessages(session, messages); return "xxx.jsp"; } JSP <html:messages id="message"

    SAStrutsでリダイレクトした後に一度だけメッセージを表示する - C.O.D -Coding or Die-
  • 激務SEの日記

    今までブログに書いてましたが、削除してWikiにまとめます。 ブックマークしてくれていた方々すいません。 http://www22.atwiki.jp/seasar2/ S2Unitでテストをする際に、必ずロールバックされるものだと思ってたが、@TxBehaviorアノテーションを使うことでコミットできるんですね。。全く知りませんでした。 @TxBehavior(TxBehaviorType.COMMIT) public void test() { // } S2ActionMappingにもっているので下記方法で取得できる。 XxxForm xxxForm = S2ActionMappingUtil.getActionMapping().getActionForm();S2ActionMappingは、色々便利なメソッドがあるので、フレームワーク系の処理を書くときに便利。 S2Util版

    激務SEの日記
  • S2jdbcでエンティティ共通化とDao作成 - kamegu's memo

    前置き DBを使ったプログラムをやってると、全部のテーブルに共通するカラムがあったりします。 例えば作成日時とか最新更新日時とか。 そういう場合にすべてのエンティティクラスでそれらを定義するんではなくて、親クラスで共通なものは定義すると各エンティティの定義が楽になります。 また、その親クラスを継承させておくことで処理も共通化でき、コードをシンプルにすることもできます。 AbstractEntityクラス(エンティティの基底クラス)とSimpleDaoクラス(DB共通処理)の作成例を示します。 エンティティ共通化 共通でこのようなカラムを持たせるものとします(下の例はPostgresqlCREATE TABLE hoge_hoge ( id BIGSERIAL NOT NULL PRIMARY KEY, --ここに各テーブル独自カラム version BIGINT NOT NULL, c

    S2jdbcでエンティティ共通化とDao作成 - kamegu's memo
  • 2008-01-31 - 出羽ブログ ~はてな版~ - SAStruts + S2JDBC でサンプルアプリを作ってみました

    以前、WEB+DB PRESS vol. 41 にて特集2『つらいJavaからたのしいJavaへ Seasar2 サクサク開発 実践カリキュラム』を執筆させて頂きました。 (http://gihyo.jp/magazine/wdpress/archive/2007/vol41) この記事では、プレゼンテーション層にTeeda、データアクセス層にDBFluteというフレームワーク使ってサンプルアプリケーションを作成しました。 今回は、前回と同じ外部仕様、同じデータベースによる サンプルアプリケーションのSAStruts + S2JDBC版を作ってみました。 ただし、現時点では「正常系が動作した」というレベルの完成度です。 前回のサンプルアプリケーションと比較して、以下のような未実装な機能が 多く存在するので注意が必要です。 一部の日付書式 バリデーション 二度押し防止 戻るボタン対策 共通レ

    2008-01-31 - 出羽ブログ ~はてな版~ - SAStruts + S2JDBC でサンプルアプリを作ってみました
  • S2JDBC-GENでMysqlのdatetime型を生成: Ma note

    以前もちょっとネタにしたが、mysqlのtimestamp型はちょっとクセがある。 http://dev.mysql.com/doc/refman/5.1/ja/datetime.html http://dev.mysql.com/doc/refman/5.1/ja/timestamp-4-1.html 上記にも書いてあるが、以下の点が気になる。 ・日付か月のカラムにゼロを含むタイムスタンプ値や、有効でない日付値は許容できない。このルールの唯一の例外は、'0000-00-00 00:00:00' の特別値。要はNULLが設定できない。(たぶん。) ・1つのテーブルに複数のTIMESTAMP型のカラムがある場合1つ目のカラムにだけCURRENT_TIMESTAMP関数がが設定され、他のカラムは'0000-00-00 00:00:00'が設定される。 ・各テーブルの最初に現れるtimestam

  • Namesにjoinクエリ用文字列 -> Seasar2.4.30とS2JDBC-Gen 0.9.2で解決 | ふたつの川うるおう日記

  • kizashi1122の日記

    仕事で Seaser2 の dbsession を使っている。 セッションの中身を DB に保存することができるため、アプリケーションのクラスタリングが容易にできたり、メモリの節約になるなど大きなメリットがある。 この機能は自前で作ろうかと考えていたところだったので、非常にありがたかった。しかし、テストを重ねていくうちに、この dbsession を使っているといくつかのセキュリティに関する脆弱性があることがわかった。 それらは「XSS後のセッションハイジャックの予防策が設定でできない」「セッション固定化(のうちのセッションアダプション)ができてしまう」である。 これらの脆弱性対策には、 アプリ側での防御策をとる(dbsession を外側から拡張することも含む) dbsession 側で修正および拡張可能にしてもらう dbsession 以外の選択肢をとる(要は使わない) があると思う。

    kizashi1122の日記
  • SAStrutsのカスタムタグ・EL式 - ふなWiki

    値の出力 ${f:h(id)} ${f:h(name)} } ループ itemsに指定する変数名と、varに指定する変数名は同じにする必要がある。 <c:forEach var="customerList" varStatus="s" items="${customerList}"> ${f:h(customerList.customerName)} </c:forEach> ループのカウンタを出力したい場合は、varStatusを使用。 <c:forEach var="customerList" varStatus="s" items="${customerList}"> ${f:h(s.index)}<br> </c:forEach> 単純な分岐 <c:if test="${id==10}" > ${f:h(id)} </c:if> 変数がnull or 空かどうかは、emptyを使用

  • S2JDBCの楽観ロックのあれこれ - じょにぃの一日一善

    楽観ロックについては、色々とみたので、別エントリーで書いてみます。 まずはデータを挿入します。 <Script文=今までのテストコードも同じテーブルです> CREATE TABLE "ORDER_VOUCHER" ( "ID" NUMBER(10,0) NOT NULL ENABLE, "ACCOUNT_ID" VARCHAR2(10), "ACCOUNT_NAME" VARCHAR2(30), "VERSION" NUMBER(10,0) NOT NULL ENABLE, CONSTRAINT "ORDER_VOUCHER_PK" PRIMARY KEY ("ID") ENABLE ) @Entity public class OrderVoucher { /** idプロパティ */ @Id @Column(precision = 10, nullable = false, uniqu

    S2JDBCの楽観ロックのあれこれ - じょにぃの一日一善
  • Entity単位のServiceに共通の親クラスを持たせる - 出羽ブログ

    どうにかして型パラメータからAbstractServiceのclazzへセットしたかったのですが、やり方わからず。。。 ジェネリックの部分があまりスマートなやり方じゃない気がしていますが、ひとまず以下のやり方だとOKです。 まずはジェネリックな共通親サービスクラスです。 public abstract class AbstractService<E> { // JDBCマネージャー public JdbcManager jdbcManager; // Entityのクラス protected Class<E> clazz; @SuppressWarnings("unchecked") public AbstractService() { Type type = this.getClass().getSuperclass().getGenericSuperclass(); Type[] ar

    Entity単位のServiceに共通の親クラスを持たせる - 出羽ブログ
  • Entity単位のServiceに共通の親クラスを持たせる - Writing Some Code

    元ネタは続・SAStruts + S2JDBCのアーキテクチャに載っていたServiceで共通的に使うメソッドを共通親クラスに抽象化したメソッドで持たせるという考え。 ジェネリクスを使ったクラス設計なぞしたことが無い自分には良い刺激を受けました。 元記事ではユースケース単位にServiceを用意するという考えでしたが、自分としてはServiceはEntity単位に作っておいてActionでは1つまたは複数のServiceを組み合わせて使うようにしたい。 ServiceをEntity単位とした場合に元記事のAbstractServiceのままでは、例えばEmployeeエンティティ用のEmployeeServiceクラスを使ってfindAll等を使おうとした時に employeeService.findAll(Employee.class); となり、なんかDRYじゃない感じになる。 Ser

    Entity単位のServiceに共通の親クラスを持たせる - Writing Some Code
  • Java + Tomcat + Eclipse + Seasar2 + MySQL 環境構築手順 その1 - Javaっと。

    いろ~んなサイトを見てきましたが、 1から10まで、一貫して環境構築手順が書かれているサイトって、意外と無いんですよね。 って事で、作ってみようかと。 タイトルの通り、Java + Tomcat + Eclipse + Seasar2 + MySQL で環境を構築していきたいと思います。 今回作成するバージョンは下記の通り。 ・Java 7 ・Tomcat 6 ・Eclipse 4.3 (Kepler) ・Seasar2 ・MySQL5.6 ※ Windowsは64bit環境を前提で書いていますが、32bitでも多分同様の手順でいけるんじゃないかと思います。 んじゃスタート! ◆JDK・Tomcat・Eclipseをインストール 1.以下のURLにアクセス。 http://mergedoc.sourceforge.jp/ 2.Eclipse 4.3 Kepler のボタンをクリック。 3.

    Java + Tomcat + Eclipse + Seasar2 + MySQL 環境構築手順 その1 - Javaっと。
  • 【ハウツー】Seasar 2.4リリース! 今更でも恥ずかしくない、始めてみようDIプログラミング (1) DIプログラミング - Seasar S2Containerで体験してみよう | エンタープライズ | マイコミジャーナル

    Javaプログラミングにおいて、クラスの独立性を高め、再利用性の高さ、実装の入れ替えの容易さ、アスペクトの自動的な適用、ホットデプロイなどサーバデベロップメントに欠かせない機能を実現するための基盤技術のひとつにDI(Dependency Injection)がある。DIはインタフェースと実装の完全な分離を目指し、主にDIコンテナと呼ばれる専用の実行環境/フレームワークを通して実現される。 DIコンテナの実装はいくつかあるが、ここでは11日に最新版の2.4.0(2.4.1)がリリースされたSeasar 2.4(S2Container 2.4)を取り上げて紹介したい。Seasar 2.4はThe Seasar Foundationによって開発がおこなわれているプロダクトで、周辺プロダクトの充実や日語ドキュメントの充実など、国内におけるエンタープライズ向けWebアプリケーションシステム開発用の

  • 1