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始终date53IconDatePicker#getIconId. 不幸的是,这个方法是最终的,所以你不能覆盖它。但是你可以设置 textField 的 id:

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

然后图像的 id 将是textFieldIcon.

于 2012-09-05T15:29:54.610 回答
0

或者,您可以像这样设置名称属性:

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