5

.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>

それは私ですか、それともストラットですか?ティア。

4

5 に答える 5

6

プロパティ theme="simple" を追加します

于 2009-02-11T10:30:29.347 に答える
5

Struts2は、s:checkboxをテーブルセル自体としてレンダリングします。その理由は、struts2がタグのレンダリングにテンプレートシステムを使用しているためです。デフォルトは(struts-default.propertiesで定義されているように)です。

標準のUIテーマ

struts.ui.theme = xhtml

struts.ui.templateDir = template

struts.ui.templateSuffix = ftl

この変更を行う必要があります--struts.ui.theme:simple

追加することで実行できます

定数name="struts.ui.theme" value ="simple"/>タグ

「struts.xml」にあります。これで十分です。

于 2009-04-02T06:30:52.880 に答える
3

フォームタグのレンダリングに使用されているテーマを調べる必要があります。Struts2は、テンプレートシステム(struts.propertiesで定義)を使用します。2列のテーブルを出力するように設計されたxhtmlテンプレートをデフォルトで使用しているようです。アプリではデフォルトでシンプルにするか、タグレベル(またはその間の他の5つの階層)でオーバーライドすることができます。

詳細は次のとおりです:http ://struts.apache.org/2.0.14/docs/themes-and-templates.html

于 2008-12-31T06:31:50.773 に答える
2

チェックボックスを定義するときは、次のように「theme = simple」属性を使用します。

「シンプル」テーマは、チェックボックスを他のフィールドと同じ行に配置します。乾杯。

于 2009-06-02T21:28:44.587 に答える
0

問題は、デフォルトのstrutsテーマでs:checkboxは、テーブルセル自体であるということです。(Struts 2はそれをテーブルセルとしてレンダリングします)

jspで、<td>タグに再度含めます(これは不要です)

<td>チェックボックスタグの周りのタグを削除してみてください。

于 2009-01-30T14:48:08.073 に答える