gpt4 book ai didi

java - 如何最佳地使用 Wicket 中的 DropDownChoice 和 ChoiceRenderer 来处理显示和 ID 值?

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

我正在尝试使用 Wicket 在表单中创建一个简单的下拉选择框,但被 Wicket 抛出的异常所困扰。如下:

最后一个原因:没有为类定义 get 方法:class java.lang.Long 表达式:id

当我继续检查代码和 Wicket 文档时,我根本无法弄清楚我做错了什么,并且可以利用 Stackoverflow 和 Wicket 社区的帮助。以下是一些相关的代码片段...首先,我的表单使用了CompoundPropertyModel:

add(jobForm);

// Unrelated fields snipped, see 'employmentTypeId':
jobForm.setModel(new CompoundPropertyModel<Job>(jobModel));
jobForm.add(new DropDownChoice("employmentTypeId", new List<GenericPickList>, new ChoiceRenderer<GenericPickList>("description", "id")));

DropDownChoice 中的参数解释:#1,组件的 wicket:id,#2,在实际实现中,这是 GenericPickList(即列表)的完全填充的 List 集合,#3,我的 ChoiceRenderer,它标识描述字段作为显示值,id 值作为 ID,两者都来自 GenericPickList 类。

GenericPickList 类很简单:

public class GenericPickList {

private long id;
private String description;

public long getId() {
return id;
}

public void setId(long id) {
this.id = id;
}

public String getDescription() {
return description;
}

public void setDescription(String description) {
this.description = description;
}

}

该错误表明 ChoiceRenderer 没有在 GenericPickList 中找到 id 字段的 getter,但它就在那里,所以我相信我的假设是不正确的。谁能对此提供任何见解?

作为补充说明(也是令人沮丧的一点),从 ChoiceRenderer 构造函数中删除“id”后,它似乎可以正常工作:

new ChoiceRenderer<GenericPickList>("description");

当然,由于这些是与主键相关联的数据驱动值,因此出于我的目的,需要包含 ID 值。

最佳答案

当您使用“id”时,您本质上告诉 Wicket 口在模型中查找属性 id,并且它看起来不像任何雇佣类型 ID 类型的模型具有属性 id。

Wicket Choice Renderer Documentation

关于java - 如何最佳地使用 Wicket 中的 DropDownChoice 和 ChoiceRenderer 来处理显示和 ID 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14780705/

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