約10画面で構成されるWebflowアプリを構築しています。私のフロー定義ファイルは、すべてのビューステート間のフローを定義します。ここで、各ビューステートは .jsp ビュー ファイルによって表されます。
ここで、アプリケーションのホワイト ラベル付けの概念を紹介したいと思います。つまり、同じフローを提示できますが、モデル プロパティ (${brand}) に応じて、異なる「スキン」またはビュー ファイルを使用できます。
cssだけでは無理だと思います。ブランド間の html マークアップは非常に異なり、いくつかのフィールドは異なるテキストなどで表示されます (つまり、ブランド X は「あなたの名前は何ですか」と言うかもしれませんし、ブランド Y は「あなたの名前を入力してください」と言うかもしれません)。
各 jsp ファイルに大量のロジックを配置して、必要に応じてさまざまなマークアップとテキストを表示することもできますが、これは面倒です。各ブランドのマークアップが関連する 1 つの巨大な if/else になってしまうと思います。 if/else 本体。
ビュー jsp を使用して、どの jsp を表示するかを「決定」できます。このようなもの:
<view-state id="AboutYou" view="common/AboutYou" />
次に、common/AboutYou.jsp で、次のようにします。
<c:chooose>
<c:when test="${brand == 'X'}>
<jsp:include page="brandX/AboutYou.jsp" />
</c:when>
<c:when test="${brand == 'Y'}>
<jsp:include page="brandY/AboutYou.jsp" />
</c:when>
</c:choose>
これが機能していることはわかりますが、どれほど効率的かはわかりません.10 個の追加の .jsp ファイルがあり、「共通」.jsp ファイルの唯一の仕事は、どのブランドの .jsp を表示するかを決定することです。
もう 1 つの方法は、すべてのビューステートを複製してから、フロー定義ファイルに大量の決定ステートを入れることです。しかし、これは非常に厄介なようで、フロー定義ファイルが非常に肥大化します。
だから、これを行うための別の/より良い/よりスマートな方法があるかどうか疑問に思っていました. おそらく、フロー定義ファイルでELを使用できるようになるでしょう。このようなもの:
<view-state id="AboutYou" view="brand${brand}/AboutYou" />
これは機能しますか?または、これはこれにアプローチする別の方法ですか?
乾杯、
ネイサン