Java と Struts 2 を使用して単純な「Hello World」アプリを構築するためのオンライン リソースのほとんどを読みました。単純なことは理解しています。私の問題は、その学習を拡張して大規模なアプリを構築しようとしていることです。点と点をつなぐ方法がわかりません。
シナリオ: まず、Home.jsp、MyAccount.jsp、Contact.jsp の 3 つのビューがあります。それぞれに次の HTML があります。
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="js/common.js"></script>
...
</head>
<body>
<!-- If logged in, says "hello <s:property name="username">"
Else displays link to .show() #loginPane -->
<div id="accountHeader">...</div>
<!-- Displays <s:textfield> tags and <s:submit> tag to accept username and password -->
<div id="loginPane" style="display: none">...</div>
<header>...</header>
<nav>...</nav>
<!-- Displays view-specific content that includes Struts 2 tags -->
<div id="content">...</div>
<footer>...</footer>
</body>
</html>
したがって、明らかに、各ビュー (#content div 以外のもの) に共通するコードが多数あります。
コードを再利用するためにこれらのビューを設計するにはどうすればよいですか?
私が試したこと:
共通コードを common.js に配置し、jQuery .html() 呼び出しを使用して
<div>
s を設定します。[ jQuery はタグ付きのコードを生成できないため、機能しません。<s:>
].jsp ビュー ファイルを 1 つだけ使用し、ビュー固有のコードを common.js に配置して、jQuery .html() 呼び出しで生成します。[同じ理由で動作しません -- jQuery は
<s:>
タグ付きのコードを生成できません。]すべてのビュー コンポーネントを .jspf ファイルに配置し、それぞれを common.js からの jQuery .load() 呼び出しでロードします。[動作しません -- .jspf ファイルにはそれぞれに含まれる Struts 2 <%taglib ...%> が必要だと推測していますが、jQuery .load() は <%taglib ...%> をテキストとして扱い、
<div>
...に表示されず、<s:>
タグを適切に生成することもできません。]
これを行う適切な方法は何ですか?コードを再利用するためにビューを設計するにはどうすればよいですか?
これがアーキテクチャのヘルプを求める適切なフォーラムでない場合は申し訳ありませんが、私はここで本当に苦労しています...おそらく、このタイプのアーキテクチャに対処するより適切なフォーラムまたはオンラインチュートリアルを教えてください?
前もって感謝します!