1

Apache Wicket で DatePicker の HTML マークアップを変更しようとしています。私が今持っているもの:

public CustomDateTextField(final String id, IModel<T> model, Class<T> type, String modelPath) {
        super(id, model, type, modelPath);
        addDatePicker();

}

そして、これはデフォルトのマークアップを使用します。たとえば、これを初期化するには、次の Java コードを使用します。

CustomDateTextField<?> textField = new CustomDateTextField(field, model.bind(field), pathPrefix + "." + field);

そして、この HTML マークアップ:

<input wicket:id="date" name="date" type="text"  size="10" maxlength="10" />

しかし、自動化をテストするために、UI で一意の ID を使用できるようにしたいと考えています。つまり、UI で datePicker を調べると、次のようになります。

<img style="cursor: pointer; border: none;" id="date53Icon" src="resources/org.apache.wicket.extensions.yui.calendar.DatePicker/icon1.gif" alt="" title="">

しかし、この特定の datePicker を一意にする必要があります。たとえば、html name="apocalypseDate" に追加できますが、そのためには何らかの方法でマークアップを抽出する必要があります。そして今、私はそれを行う方法をかなり混乱させています。

前もって感謝します!

4

2 に答える 2

0

id は常に、で定義されたコンポーネントとアイコンのコンポーネント id です(これが を取得する理由です) 。残念ながら、このメソッドは最終的なものであるため、オーバーライドすることはできません。ただし、textField の id を設定できます。date53IconDatePicker#getIconId

textField.setMarkupId("textField");
textField.setOutputMarkupId(true);

画像の id は になりますtextFieldIcon

于 2012-09-05T15:29:54.610 に答える
0

または、次のように name 属性を設定することもできます。

textField.add(AttributeModifier.replace("name", "fixedValue"));
于 2012-09-06T13:13:29.523 に答える