私が取り組んでいる現在のアプリケーションは、2003 年からの伝統的な J2EE アプリケーションであり、JSP ベースのフロントエンドと、通常疑わしいいくつかのサービス層 (Auth、DAO など) を備えています。
問題は、フロントエンドが混乱していることです。MVC も、テンプレートも、何もありません。開発者は何年にもわたってコードを直接 JSP に書き込んでおり (Java コードの大量のチャンクを意味します)、それらのチャンクのある時点で、制御フローはサービス層に渡されます。読んでデバッグするのは面倒です。
私はこのアプリケーションの新しい機能を書いていますが、かなり目立たない方法でそれを行う必要があります。xml 構成、またはクラスパス設定などを変更するものは、一般的に推奨されません。
私の質問は次のとおりです。アプリケーションへのエントリ ポイントとして JSP しかない場合、これらの制約の下で可能な限りクリーンなコードを作成するにはどうすればよいでしょうか?
私は ajaxian モジュール (jQuery はプロジェクト svn で既に利用可能) を作成しているため、通常、JavaScript と JSP は次のようになります。
JavaScript:
jsAjaxCall({
url: 'myActionURL.jsp',
method: 'post',
params: {},
success: function(data){
},
failure: function(data){
}
});
myActionURL.jsp
<%
//entry into server tiers
SomeEntryPointClass entry = new SomeEntryPointClass(request);
String responseString = entry.doYourJob();
PrintWriter out = response.getWriter();
out.print(responseString);
out.flush();
%>
質問:
- アイデアは、JSP 内の Java コードを最小限に抑え、できるだけ早くリクエスト オブジェクトを正面向きの (名前を付けるなんて!) オブジェクトに渡すことです。制約を考えると、これは合理的に正しいアプローチですか?
- 物をきれいに整理整頓するためにできる追加のことは何ですか? (リクエストパラメータをドメインオブジェクトにバインドするための独自のクラスをすでに作成しているので、それもプラスです)。
- このような状況で PAINLESS フォーム検証を行うにはどうすればよいですか? Spring MVC の検証がありません! JSP だけですべての手動の大騒ぎとルーティングとバインディングの混乱を想像することはできません! :(