1

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

そのようなシナリオの適切な解決策は何ですか? 私はいくつかの XML と XSLT スタックを考えました。バックエンドは XML のデータのみを提供し、レイアウトごとに何らかの魔法を行う XSLT を持っています。

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

何か方向を教えてもらえますか?

4

5 に答える 5

1

名声のない昔ながらのJSPの場合:

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

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

または:

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の一部)を上部/下部にアタッチするかを決定します。

于 2008-09-25T12:00:47.100 に答える
1

MVC(Model View Controller)と、JSPはそのビューの一部であり、ロジックを一切含まないようにする必要があるという考えについて学びます。ロジックはModelクラスに属しています。

于 2008-09-25T12:14:09.843 に答える
1

これは通常、何らかのテンプレート エンジンを使用することで解決されます。小さなページ フラグメントを作成してから、特定のビューをこれらのパーツで構成し、特定の方法で組み合わせる必要があることをテンプレート エンジンに宣言します。

Struts タイルは Java の世界では古典的な例ですが、Java や他の言語の最新のフレームワークと比較すると、実際には古くて粗雑になっています。Tapestry と Wicket は、より現代的なものです (まだ使用していません)。

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

于 2008-09-25T11:47:39.063 に答える
0

タイルをご覧ください。

于 2008-09-25T11:46:05.667 に答える
0

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

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

  2. Cascading Style Sheets (CSS) を見てみましょう。これは、Web ページをレイアウトする最先端の方法です。適切に設計された html + CSS があれば、レイアウトごとに異なる JSP は必要ないかもしれません。

よろしく

于 2008-09-26T09:29:14.117 に答える