4

私は次のhtmlを持っています:

<label wicket:id="drugSearchResult.row.item.label" for="drug_1">[Drug XYZ]  
    <span wicket:id="drugSearchResult.row.item.info">[Information, Price, Other]</span>
</label>

ただし、label要素で子コンポーネントを追加することはできません。このhtml要件を達成する方法はありますか?

これは設計者の要件です。

ドラッグXYZ//ラベル
情報、価格、その他//スパン

4

2 に答える 2

8

の代わりに要素に使用FormComponentLabelしていることを確認してください。<label>Label

Labelの目的は、関連する要素内にテキストを出力することです(、、または他のほとんどすべてのタグにすることができます<span><div>

FormComponentLabelの目的は、<label>タグをモデル化することです。それらは関連するものを受け取り、dom属性の適切な値で属性をFormComponent自動的に出力します。forid

フォームコントロールラベルのWicketwikiページをご覧ください。彼らはFormComponentLabelそこにコンポーネントを追加しています。

FormComponentLabel使用をまったく避けたい場合は、属性を指定せずに、参照する要素のwicket:idDOM属性を手動で設定する必要があります。次に、の属性で使用します。id<label>for<label>

例えば:

HTML

<input wicket:id="drug">
<label for="drug_1">[Drug XYZ]  
    <span wicket:id="drugSearchResult.row.item.info">[Information, Price, Other]</span>
</label>

Java

TextField drug = new TextField("drug");
drug.setMarkupId("drug_1"); // Make sure this ID is unique in the page!
drug.setOutputMarkupId(true);
add(drug);
Label drugDescription = new Label("drugSearchResult.row.item.label", aModel);
add(drugDescription);
于 2012-06-14T19:46:25.500 に答える
1

プロパティと<wicket:message>

私にとって、以下のアプローチは役に立ちます。私のプロジェクトでは、 sメッセージと検証メッセージの
テキストが定義されている場所はページごとに1つだけです。<label>これは、Webページのプロパティファイルです。

追加<div>のとそのクラス属性はBootstrapからのものです。

<div class="form-group required">
    <label wicket:for="customer.name1">
        <wicket:message key="customer.name1"/>
    </label>
    <div class="controls">
        <input type="text" wicket:id="customer.name1" required class="form-control">
    </div>
</div>

Java

add(new RequiredTextField<String>("customer.name1")
         .setLabel(new StringResourceModel("customer.name1")));

customerPage.properties

# siehe wicket-core-7.9.0-sources.jar!/org/apache/wicket/Application_de.properties
Required='${label}' ist erforderlich
customer.name1=Name 1
customer.name2=Name 2
customer.department=Abteilung
customer.phone=Telefon
customer.active=aktiv
于 2018-01-05T08:27:18.747 に答える