gpt4 book ai didi

java - Wicket 虚拟表单字段

转载 作者:行者123 更新时间:2023-11-30 06:36:07 27 4
gpt4 key购买 nike

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

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:

或者那个 User 模型没有 password2 相关的方法。遇到这种情况怎么办?

最佳答案

应该这样做:

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

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

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

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