現在、Struts2 を使用して MVC Java Web アプリを作成しています。
私のアプリの 1 つの要素は、フォームを介していくつかの結果を検索しています。ユーザーがフォームを送信すると、アクションがデータベースから必要な値を取得し、マップに入力します。
Map<Integer,List<String>> values = new HashMap<Integer,List<String>>();
各行の列値のリストがあります。
このアプローチに従うことで、結果ボックスの結果を表示するための汎用 JSP を使用できます。
<s:div cssClass='resultContainer'
cssStyle=' min-height: 150px; max-height:%{header}px; overflow: auto; %{display}; '
theme="qxhtml">
<table id='resultTable'>
<tr id='tableHeader'>
<s:iterator value="headers">
<th><s:property /></th>
</s:iterator>
</tr>
<s:iterator value="values">
<tr class='results'>
<s:iterator value="value">
<td><s:property escape="false" /></td>
</s:iterator>
</tr>
</s:iterator>
</table>
これは悪いアプローチだと今は感じています。代わりに、マップを ResultBoxRow オブジェクトのリストに変更する必要があります。各 ResultBox には、1 つの一般的なビュー Jsp ではなく、独自のビュー Jsp があり、オブジェクトを反復処理して出力することができます。たとえば、次のようになります。
<s:iterator value="value">
<td><s:property name="firstname" /></td>
<td><s:property name="lastname" /></td>
等
テーブル ヘッダーの場合、特定のヘッダーに個別のスタイル プロパティを指定する必要がある場合があります。これらは、JSP がそのヘッダーのスタイルを含むコントローラーから値を参照するようにするのではなく、JSP 自体で定義する必要があると思います。
私の全体的な質問は、コントローラーがビューの要素のスタイル/表示をどの程度制御する必要があるかということだと思いますか? たとえば、行の「スタイル」タグに入れる値ではなく、タグに表示される個々の要素を生成するだけでよいと思います。これにより、すべての結果ボックスを処理するために単純な単一の JSP が犠牲になったとしても。
ご意見をいただけると有難いです。