java - Wicket 口虚拟表格字段

标签 java wicket

我尝试制作表单供用户使用 Wicket 进行注册。我得到了用户 POJO 和 wicket 表单 - 这需要有“重复密码”字段,该字段不应以任何方式连接到 User 对象。但我该怎么做呢?我

public class RegisterForm extends Form<User> {

private static final long serialVersionUID = -9071906666130179515L;

public RegisterForm(String id) {
    super(id, new CompoundPropertyModel<User>(new User()));

    PasswordTextField pass  = new PasswordTextField("password");
    pass.setType(String.class);

    PasswordTextField pass2 = new PasswordTextField("password2");
    pass2.setType(String.class);
    pass2.setDefaultModelObject("");

    add(new EqualPasswordInputValidator(pass, pass2));

    add(new TextField<String>("login")
                .setType(String.class)
                .setRequired(true)
                .add(new PatternValidator("[a-z0-9]*")));

    add(new TextField<String>("email")
                 .setType(String.class)
                 .add(EmailAddressValidator.getInstance()));

    add(pass);

    add(pass2);
}

但我明白了

java.lang.IllegalStateException: Attempt to set model object on null model of component:

或者用户模型没有与password2相关的方法。这种情况该如何处理?

最佳答案

这应该可以做到:

PasswordTextField pass2 = new PasswordTextField("password2", Model.of(""));

说明:CompoundPropertyModel 将嵌套表单元素与父模型关联起来(组件名称 foo 映射到父模型的 bean.foo 属性)模型)。您可以通过为子组件分配不同的模型来覆盖此行为。

关于java - Wicket 口虚拟表格字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5196462/

相关文章:

java - 我在哪里可以找到一个很好的 HTMLEditorKit 教程/引用,它实际上解释了如何编辑 HTML 文档?

java - Wicket:在 onSubmit 之后下载文件

java - 如何在 Windows 中通过命令提示符运行 Junit.Jupiter 代码

java - JSP 打印主机名

java - 单击复选框时 Wicket 检索 CheckGroup 的模型

java - 从 Wicket 1.3.7 升级到 1.4.9 有哪些主要优势?

java - ListView 内的片段 - Wicket

java - 如何使用大参数进行 Wicket 重定向?

java - BadPaddingException:GCM 中的 mac 检查失败

java - 为什么人们使用 if(null == var) 风格的测试?