0

私が取り組んでいる現在のアプリケーションは、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();
%>

質問:

  1. アイデアは、JSP 内の Java コードを最小限に抑え、できるだけ早くリクエスト オブジェクトを正面向きの (名前を付けるなんて!) オブジェクトに渡すことです。制約を考えると、これは合理的に正しいアプローチですか?
  2. 物をきれいに整理整頓するためにできる追加のことは何ですか? (リクエストパラメータをドメインオブジェクトにバインドするための独自のクラスをすでに作成しているので、それもプラスです)。
  3. このような状況で PAINLESS フォーム検証を行うにはどうすればよいですか? Spring MVC の検証がありません! JSP だけですべての手動の​​大騒ぎとルーティングとバインディングの混乱を想像することはできません! :(
4

1 に答える 1

1

良いニュースは、jsp がサーブレットにコンパイルされることです。これはもちろん、通常のサーブレットを使用する方法で jsp を使用できるようになるため、朗報です。

java の使用状況を jsp に保持し、ヘルパー オブジェクトに渡すこと (正面を向いているとは言えませんでした) は、次のように正しい呼び出しです。

1) jsp ファイルのサイズには厳しい制限があります

2) jsps からの単体テストの作成は、純粋なクラスよりも難しい

3) ほとんどの IDE は、通常のクラスの場合と同じレベルの、jsp に埋め込まれた Java のコード作成サポートを提供しません。

4) デバッグが容易になる

2番目の質問については、カスタムタグを使用して見ることができるjsp 2の場合、それらはjspの重いコードを整理するのに役立つ方法です。さらに、完全に ajax を使いたくて狡猾だと感じている場合は、Json オブジェクトを提供するように設計された jsp ページを作成できると思います。JSP を効果的にフロント エンド サービスに変換します。

3 番目のオプションについては、申し訳ありませんが、あなたのシステムは無痛とは言えません。strut、jsr303、spring mvc、さらには新しいサーブレットの検証は少し面倒です。

もちろん、検証済みの json オブジェクトを返す検証 JSP を作成した場合 (上記の提案を参照)、作業が少し楽になるかもしれません。

幸運を

于 2012-07-06T11:38:57.187 に答える