gpt4 book ai didi

用于对象映射表单组件的 Wicket 字符串验证器

转载 作者:行者123 更新时间:2023-12-02 08:26:08 25 4
gpt4 key购买 nike

我正在使用 Form 组件来编辑 Object 中的值。我已使用 LoadableDetachableModel 将对象映射到表单,以便对象中的值显示在表单上并自动应用更新。

final Form<Withdrawal> form = new Form<Withdrawal>("form",
new CompoundPropertyModel<Withdrawal>(ldm)) {
.... }

但是,我在向表单组件添加验证器(例如向文本字段添加 StringValidator)时遇到问题。我有一个“评论”字段(提款对象中的字段之一)。

理想情况下我想将其添加为:

TextField<Withdrawal> tf_comments = new TextField<Withdrawal>("comment");
tf_comments.add( new StringValidator.MaximumLengthValidator(255));
form.add( tf_comments);

但是由于我无法向其中添加 StringValidators 因为 StringValidator对于 TextField<Withdrawal>没有定义。因此,我使用下面的内容并获取该字段的值并将其手动设置为对象。

    TextField<String> tf_comments = new TextField<String>("comment");
tf_comments.add( new StringValidator.MaximumLengthValidator(255));
form.add(tf_comments);

有没有办法将验证器直接添加到 TextField<Withdrawal>

谢谢。

最佳答案

首先,你对TextField<Withdrawal>的理解与 CompoundPropertyModel这是错误的:CompoundPropertyModel 负责绑定(bind)通过 PropertyModel 名称指定的属性。到文本字段。所以你不需要通用StringValidator TextField 的对象。

在 Wicket 6.7 中:
TextField<Withdrawal> tf_comments = new TextField<Withdrawal>("comment");
tf_comments.add(StringValidator.maximumLength(255));

对于 Wicket 1.5,您的代码应该可以工作,至少我没有收到任何语法错误。您应该在 Withdrawal 类中为“评论”提供 getter 和 setter。

关于用于对象映射表单组件的 Wicket 字符串验证器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17063746/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com