質問

Tomcat には大量の JSP ファイルとバックエンドがあります。内部ロジックは同じですが、レイアウトが異なる 3 つの異なるバージョンの JSP があります。したがって、ロジックを変更すると、3 つの JSP ファイルを修正する必要があります。

このようなシナリオに適したソースは何でしょうか?XML と XSLT スタックをいくつか考えてみました。バックエンドは XML のデータのみを提供し、各レイアウトに対していくつかの魔法を実行する XSLT を用意しています。

JSP でさまざまな言語で stackoverflow を提供する必要があると想像してください。ロジックは同じですが、レイアウトが異なります。

何か方向性を教えてもらえませんか?

役に立ちましたか?

解決

MVC (Model View Controller) と、JSP はその View 部分であるべきであり、ロジックをまったく含めるべきではないという考えについて学びます。ロジックは Model クラスに属します。

他のヒント

これは通常、テンプレート エンジンを使用することによって解決されます。小さいページ フラグメントを作成し、特定のビューがこれらの部分で構成され、特定の方法でまとめられるようにテンプレート エンジンに宣言します。

Struts タイルは Java の世界における典型的な例ですが、Java やその他の言語の最新のフレームワークと比較すると、本当に古くなり、粗雑になってきています。Tapestry と Wicket は、より現代的な 2 つです (使用したことはありません)。

わずか 3 ページの場合、Web フレームワーク全体を適用するのはおそらくやりすぎですが、サイトが成長すると...

いかなる種類のフレームワークも含まない単純な古い JSP を使用する場合:

1)コントローラーを使用して処理を行い、JSPのみを使用してデータを表示します

2)JSPを使用して、ディレクティブを含めて、ヘッダー、ナビゲーション、メニュー、フッター、その他の必要な共通/共有要素をすべてのレイアウトに含めます。

または:

web.xml で以下を使用します

    <jsp-property-group>
        <url-pattern>/customers/*</url-pattern>
        <include-prelude>/shared/layout/_layout_customers_top.jsp</include-prelude>
        <include-coda>/shared/layout/_layout_customers_bottom.jsp</include-coda>
    </jsp-property-group>

URL パターンは、どの JSP が上部/下部にアタッチされたどの JSP フラグメント (Ruby on Rails の部分) を取得するかを決定します。

タイルを見てみましょう。

これは非常に古典的な問題領域であり、この問題に対処しようとしている概念やフレームワークがたくさんあります (Struts や JSF、SessionBeans などの MVC フレームワーク)。あなたは実際には Java エンタープライズ「エバンジェリスト」ではないと思われるので、簡単なアドバイスを 2 つあげます。

  1. JSP には明らかに冗長なコードがたくさんあります。このコードを「実際の」Java クラスに抽出し、すべての JSP で使用します。こうすることで、ビジネス ロジックを 1 か所で変更できるようになり、冗長性の問題が少なくなります。

  2. カスケード スタイル シート (CSS) を見てみましょう。これは、Web ページをレイアウトする最先端の方法です。HTML と CSS を適切に設計していれば、レイアウトごとに異なる JSP を使用する必要さえないかもしれません。

よろしく

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top