【发布时间】:2013-04-10 20:40:01
【问题描述】:
我正在尝试在我的 UiBinder XML 中声明这些元素:
<label for="lastName">Last Name:</label>
<input type="text" id="lastName" ui:field="lastNameField" maxlength="150" />
简单地说,与文本输入相关联的标签。
然而,当我尝试编译时,我得到了这个错误:
[错误] 不能在同一个元素 Element (:23) 上声明 id="lastName" 和 ui:field="lastNameField"
这似乎是一个愚蠢的限制,特别是因为ui:field 不会生成 ID。到目前为止,我发现的唯一解决方案是在 Java 代码本身中分配 ID,如下所示:
@UiElement InputElement lastNameField;
...
lastNameField.setId("lastName");
这给我的 Java 添加了不必要的混乱。它还增加了一个复杂性,如果此 ID 在某处更新,则 XML 中的 <label> 声明也需要更新(并且标签没有 @UiElement,因此从 Java 端几乎完全不可见.)
有没有办法通过 UiBinder XML 本身的 ui:field 声明向元素添加 ID?
【问题讨论】: