次の特性を持つ、J2EE で単純な Web アプリケーションを作成したいと考えています。
- AJAX は必要ありません。ブラウザで JavaScript を無効にしても動作するはずです。
- シンプルなCRUDアプリです
- 各要素をページ上に配置する方法を完全に制御する必要があります。GUI のルック アンド フィールに妥協はありません。
- データ アクセスにプレーンな古い JDBC を使用できます - o/r マッパーは必要ありません
- ページのブックマークが必要です (ブックマークする意味がある場合)。
- 私のユーザーの多くは、タブ ブラウジングを頻繁に使用しています。
フレームワークでやりたいことは次のとおりです。
- GET および POST パラメータを取得するための優れた抽象化を教えてください
- 検証エラーやその他のエラーをユーザーに表示する便利な機能を教えてください
- 標準的な安全機能のセットを提供する - クロスサイト スクリプティングを防止し、ユーザーがドロップダウン入力をドロップダウンにない値に設定できないようにする、など
- それほど強力ではないサーバー上で、パフォーマンスが高く、200 人を超える同時ユーザーに十分に対応できます。(クラスターなし - 単一ノード、複数の運用アプリケーションを含む共有アプリ サーバー)
- 安定してください。少なくとも 3 ~ 4 年間は、大きなリファクタリングを行わずにそのアプリケーションを実行したいからです。
いくつかのフレームワークを見て、これが私が感じたことです..
- プレーン サーブレット/JSP - すべてを自分でコーディングする必要がある - これには時間がかかり、おそらく多くのバグがある
- Struts (1.x) - 単純なサーブレット アプローチに勝る利点はあまりありません。POST および GET パラメータをフォーム Bean にマップしますが、私が探している他の機能はありません。自分でコーディングするのに多くの時間を費やす必要があります
- JSF - 私が読んだパフォーマンスの問題のために、私はそれを怖がっています。ビューの構築とメンテナンスがメモリを消費しすぎているようです。また、JSF はブックマークやタブ付きブラウザーではうまく機能しません。
- Tapestry - Tapestry 5 を調べてみました。見た目は良いのですが、タブ ブラウジングやブックマークとの互換性がないようです。「アクティベーション コンテキスト」は確かにサポートされていますが、これは単一の文字列にすぎません。GET パラメータと非表示のフォーム フィールドを (まだ) 使用して状態を復元することはできません。さらに、フレームワークの寿命について懸念があるようでした。下位互換性なしで進化しているように見えました。
- Apache Turbine - 最初は良さそうに見えました。しかし、それがかなり古く、あまり活動が行われていないという事実は、私を怖がらせます.
私にとって何が良いかについて何か提案はありますか?ありがとうございました!
PS: Apache ライセンス (できれば v2) または BSD ライセンスでライセンスされているものを使用するように制限されています。