Struts3から、新しい機能が使えるようになっています。
DI
プロパティに@OracleXEアノテーションをつけることで、自動的にOracleXEをダウンロードして変数内にインストールしてくれます。
public class OracleBean{ @OracleXE prviate Oracle oracleXE; public void setOracleXE(db){ oracleXE = db; } public void start(){ oracleXE.start(); } public ResultSet query(){ return oracleXE.executeQuery("select * from Person"); } }
従来のJDBC方式とは異なり、変数にインストールされたDBに直接アクセスできるため、極めて高速にデータアクセスできます。
ただし、インスタンスごとにインストールが行われるので、シングルトンで利用することをお勧めします。
同様に@Oracleアノテーション、@Sybaseアノテーションも利用できますが、課金状況によっては
InvalidLicenseExceptionが発生するようです。
JSR 0401(DatabaseInjection)のサポートです。
SIerモード
コマンドプロンプトから、SIerコマンドを発行することで、Strutsのパッケージ名をすべて独自のパッケージに変更します。
java -cp struts3.jar SIer jp.co.hogehoge
このコマンドで、「org.apache.struts」部分がすべて「jp.co.hogehoge」に置き換わります。
また同時に、すべてのコメントが削除され、すべてのクラス・メソッドがfinal宣言に変わりますので、
カスタマイズされる心配がなくなります。
デフォルトではActionクラスおよびActionFormクラスもfinalになるので、適宜修正して使用してください。
ダブルサブミット防止機能
クライアントから頻繁にサブミットボタン2度押しが行われた場合、同一URLにリダイレクトさせ続けて
ブラウザ利用を不可能にする制御を行います。
ブラウザがチカチカする恐怖心から、2度とダブルサブミットを行わないようになるでしょう。