バージョン 1.1.x から 2.0.x へ移行する際に注意すべき点を解説します。
動作環境を J2SE 1.4 (Servlet 2.4 / JSP 2.0) から JavaEE 5 (Servlet 2.5 / JSP 2.1) へ変更しています。 サーブレットコンテナには上記バージョンを満たすもの (Tomcat であれば 6 以降、Jetty であれば 6 以降) を使用してください。
アクションクラスを作成するために参照するクラスとフレームワーク内部で使用するクラスを明確にするためにパッケージを分離しています。 フレームワーク内部で使用するクラスは org.seasar.cubby.internal へ移動しています。
このバージョンからは機能毎に jar ファイルを分割しています。 以前と同様の機能を実現するには以下の jar ファイルをクラスパスに含めてください。
詳しくはセットアップの Seasar2 統合の項を参照してください。
以前のバージョンでは PropertyInterType によって JSP からアクションの public フィールドへアクセスしていましたが、 2.0 からはカスタム ELResolver によって public フィールドへアクセスできるようになっています。 customizer.dicon などから PropertyInterType の設定を除去してください。
app-cubby.dicon が変更になっています。 詳しくはセットアップの Seasar2 統合の項を参照してください。
Json クラスで使用する JSON へのシリアライザを Seasar2 の JSONSerializer クラスから GSON へ変更しています。
以前と同様に org.seasar.framework.JSONSerializer を使用したい場合は、以下のようにしてください。
package com.example; import org.seasar.cubby.plugin.AbstractPlugin; import org.seasar.cubby.spi.JsonProvider; import org.seasar.cubby.spi.Provider; import org.seasar.framework.util.JSONSerializer; public class S2JSONSerializerPlugin extends AbstractPlugin { private JsonProvider jsonProvider = new JsonProvider() { public String toJson(Object o) { return JSONSerializer.serialize(o); } }; public <S extends Provider> S getProvider(Class<S> service) { if (JsonProvider.class.equals(service)) { return service.cast(jsonProvider); } return null; } }
com.example.S2JSONSerializerPlugin