私はUiBinderサンプルメッセージのXMLにこれらの要素を宣言しようとしている:は、UIを持つフィールドにIDを追加します。フィールド宣言
<label for="lastName">Last Name:</label>
<input type="text" id="lastName" ui:field="lastNameField" maxlength="150" />
単に、テキスト入力に関連付けられているラベルを置きます。私がコンパイルしようと
、しかし、私はこのエラーを取得:
[ERROR] Cannot declare id="lastName" and ui:field="lastNameField" on the same element Element (:23)
これはui:field
はIDを生成しない、特に以来、ばかげた制限のように思えます。私がこれまでに見つけた唯一の解決策は、このようなJavaコード自体にIDを割り当てることです:
@UiElement InputElement lastNameField;
...
lastNameField.setId("lastName");
これは私のJavaへの不必要な混乱を追加します。また、このIDがラインのどこかで更新されると、XML内の<label>
宣言も更新する必要があります(ラベルには@UiElementがないため、Java側からはほとんど見えません)という複雑さも加えています。
Ui:フィールド宣言を持つ要素にUiBinder XML自体のIDを追加する方法はありますか?
debugIdについてはどうですか? http://stackoverflow.com/questions/11845544/how-can-i-set-id-for-gwt-widgets-in-uibinder – Jonathan
デバッグIDはデバッグ用にあります。ツールを乱用することは、長期的にはうまくいくことはめったにありません。 –