1

カスタム検証デコレータがあります。メソッド「publicvoidafterLabel(Field field)」で、コンポーネントのIDを取得できません。field.getClientId()とfield.getControlName()を試しましたが、常にnullです。コンポーネントで私はこれをしました:

<input t:type="Checkbox" t:id="requiredOwner" t:value="currentVehicle.owner" t:clientId="requiredOwner" />

私の質問は、tapestry5でチェックボックスを検証するにはどうすればよいですか。または、デコレータ内のフィールドのIDにアクセスするにはどうすればよいですか。

ありがとう。

4

1 に答える 1

0

これは役立つかもしれません。ハートビートを使用して id を使用するコードを延期する必要があるようです。

public void afterLabel(Field field) {
    Runnable command = new Runnable() {
      public void run() {
        String fieldId = field.getClientId();
        ...
      }
    };
    heartbeat.defer(command);
}
于 2010-11-19T17:40:49.530 に答える