如何读取 Tapestry 装饰器中组件的 id?或者验证复选框

发布于 2024-10-03 13:24:49 字数 346 浏览 7 评论 0原文

我有一个自定义验证装饰器。在方法“public void afterLabel(Field field)”中,我无法获取组件的 id。我尝试了 field.getClientId() 和 field.getControlName(),但它们始终为空。在组件中我这样做了:

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

我的问题是,如何使用 Tapestry5 验证复选框;或者如何访问装饰器内字段的 id。

谢谢。

I have a custom validation decorator. In the method "public void afterLabel(Field field)" I can't get the id of the component. I tried field.getClientId() and field.getControlName(), but they are always null. In the component I did this:

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

My question is, how can I validate a checkbox with tapestry5; or how can I access the id of the field inside the decorator.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

猫性小仙女 2024-10-10 13:24:49

这可能会有所帮助。看起来您可能必须推迟执行以下代码使用心跳来使用id。

public void afterLabel(Field field) {
    Runnable command = new Runnable() {
      public void run() {
        String fieldId = field.getClientId();
        ...
      }
    };
    heartbeat.defer(command);
}

This might help. It looks like you may have to defer the code that uses the id using the heartbeat.

public void afterLabel(Field field) {
    Runnable command = new Runnable() {
      public void run() {
        String fieldId = field.getClientId();
        ...
      }
    };
    heartbeat.defer(command);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文