2011-08-05 18 views
3

私はJSPとサーブレットを使って最初のステップを踏んでおり、おもちゃプロジェクトを構築しています。ユーザーが登録するときJSP/Servletで再利用可能で柔軟なフォームコンポーネントを作成する正しい方法は何ですか?

  1. :ユーザーの詳細を更新することができます3回があり、プロジェクトのユーザー管理部では

    - 私は、次のような問題を解決するための適切なアプローチを見つけ出すことができませんでしたサイト(空の登録フォーム)

  2. ユーザーの更新が詳細(既存の詳細を含むフォーム)を所有して
  3. 管理者は、ユーザーの詳細情報(詳細といくつかの追加オプションを使用してフォーム)
を更新

私はこれらのページを作成するための3つの方法を考えることができます:恐ろしくDRY法律に違反しますが、離れてHTMLとロジックを維持、それぞれのケースごとに異なるJSPファイルを作成します

  1. 適切な方法で、サーブレットまたはカスタムタグでフォームのHTMLを生成させます。これは、Javaコード内にたくさんのHTML(?)があることを意味します。
  2. Javaロジックを単一のJSPに配置すると、コンテキストに応じてフォームのコンテンツが処理されます。これは、JSP内のJavaコードの大部分(?)を意味します(大部分はif、フィールドと値を省略または含む)。

これらの問題を解決する一般的な方法は何ですか?

答えて

2

あなたは、フォームを作成し、別のJSPファイルに入れて、あなたが好きな方、JSPページに含めることができます - これは、任意のJSPページで再利用する形することができるようになります

<jsp:include page="myForm.jsp"/> 

あなたは好きです。すべてのシナリオに共通する部分を再利用します。

+0

問題は、フォームのコンテンツ(多少)がコンテキストに依存するため、そのままでは含めることができないということです。あるケースでは空のフォームが必要で、別のフォームには既存の値が含まれている必要があります。しかし、多くは共有されているので、コードの再利用が必要ですが、HTMLとJavaの分離が問題です。 – eran

+0

@eran:この目的でJSTLを使用できます。 Beanを作成し、それがどのページであるかを示す定数を割り当て、JSTL「」または他の条件タグを使用して対応する部分を表示します。オプションの表示/非表示も可能です。このように、既存の値を持つテキストボックスなど、要素を設定するかどうかを選択することもできます。しかし、要素が異なっている場合や、各ページで異なる要素をレンダリングしたい場合は、別々のページで行う必要があります。私の個人的な経験から –

+0

私はクリーンなコードを確保するJSPページを別にしたいと思います。 Separation of Concernの原則に従ったければ、JSPページと別のロジックを分離すると助けになるかもしれません。 @ Sayemあなたはそれについてどう思いますか? –

関連する問題