2

こんにちは、改札出力のhtmlコードを変更できるかどうか疑問に思っています。たとえば、コンポーネント「CheckBoxMultipleChoice」の場合、次のhtml出力が得られます。

<span wicket:id="letters">
<input name="letters" type="checkbox" value="0" id="letters_0"/><label for="letters_0">fff</label><br/>
<input name="letters" type="checkbox" value="1" id="letters_1"/><label for="letters_1">aaa</label><br/>
<input name="letters" type="checkbox" value="2" id="letters_2"/><label for="letters_2">bbb</label><br/>
<input name="letters" type="checkbox" value="3" id="letters_3"/><label for="letters_3">ccc</label><br/>
<input name="letters" type="checkbox" value="4" id="letters_4"/><label for="letters_4">ddd</label><br/>
</span>

タグが必要ない場合、どうすれば<br/>よいですか?よろしく

4

2 に答える 2

5

コンポーネントによって異なります。

Panelに基づいている場合でも、いつでもコンポーネントをサブクラス化して(MyPanel.java)、別のマークアップファイルを提供することができます(MyPanel.html)。そこに同じものがある限りwicket:id、それは問題なく動作します。

のように、ソースコードにマークアップ要素が埋め込まれている組み込みのWicketコンポーネントCheckBoxMultipleChoiceの場合、コンポーネントのカスタムAPIに翻弄されます。あなたの場合、CheckBoxMultipleChoice#setSuffixが必要なようです。

于 2012-05-23T18:51:40.560 に答える
4

いいえ、ドキュメントから抜粋します

コンポーネントは、参照タグを変更したり、タグの本体を置き換えたり、タグの後にマークアップを挿入したりできます。ただし、コンポーネントはマークアップ ストリームからタグを削除できません。これは重要な保証です。なぜなら、グラフィック デザイナーは、ビジュアル プレゼンテーションに影響するコンポーネント タグに属性を設定している可能性があるからです。

ただし、コンポーネント間に新しい行スペースを追加/削除する場合は、コンポーネントの表示をブロック/インラインに変更できます

@Override
protected void onComponentTag(ComponentTag tag) {
    super.onComponentTag(tag);
    //block or inline 
    tag.put("style", "display:block");
}

またはCSSクラスを使用する

于 2012-05-23T16:18:36.787 に答える