struts2:s:checkboxはs:checkboxと同じ行に行かない
質問
.jspコードは次のとおりです。
<table>
<s:iterator value="allAgents">
<tr>
<td><s:property value="firstName" /></td>
<td><s:property value="middleName" /></td>
<td><s:property value="lastName" /></td>
<td><s:checkbox name="ss"/></td>
</tr>
</s:iterator>
</table>
レンダリングすると、チェックボックスは「名前」の下の中央の行全体を占めます。 これは、単一行となるはずの生成されたhtmlです。
<tr>
<td>first</td>
<td>middle</td>
<td>last</td>
<td>
<tr>
<td valign="top" align="right"></td>
<td valign="top" align="left"><input type="checkbox" name="ss"
value="true" id="agent_ss" /> <input type="hidden"
name="__checkbox_ss" value="true" /></td>
</tr>
</td>
</tr>
それは私ですか、それとも支柱ですか? TIA。
解決
プロパティtheme = <!> quot; simple <!> quot;を追加します。
他のヒント
Struts2はs:checkboxをテーブルセル自体としてレンダリングします。理由は、struts2がタグレンダリングにテンプレートシステムを使用しているためです。デフォルトは(struts-default.propertiesで定義されている)
です。標準UIテーマ
struts.ui.theme = xhtml
struts.ui.templateDir = template
struts.ui.templateSuffix = ftl
この変更を行う必要があります-struts.ui.theme:simple
追加することで実行できます
定数名= <!> quot; struts.ui.theme <!> quot; value = <!> quot; simple <!> quot; / <!> gt;タグ
<!> quot; struts.xml <!> quot;で、これで十分です。
フォームタグのレンダリングに使用されているテーマを調べる必要があります。 Struts2は、テンプレートシステム(struts.propertiesで定義)を使用します。デフォルトでは、2列のテーブルを出力するように設計されたxhtmlテンプレートを使用しているようです。アプリでデフォルトにシンプルにするか、タグレベル(または他の5つの階層)でオーバーライドできます。
詳細は次のとおりです。 http:// struts。 apache.org/2.0.14/docs/themes-and-templates.html
チェックボックスを定義するときは、<!> quot; theme = simple <!> quot;を使用します。次のような属性:
<!> quot; simple <!> quot;テーマは、チェックボックスを他のフィールドと同じ行に配置します。乾杯。
問題は、デフォルトのStrutsテーマでは、s:checkbox
がテーブルセルそのものであるということです。
(Struts 2はテーブルセルとしてレンダリングします)
jspで再度<td>
タグに含めます(必要ありません)
チェックボックスタグの周りの<=>タグを削除してみてください。