gpt4 book ai didi

java - PropertyModel 表达式的异常 : org. apache.wicket.WicketRuntimeException:没有为类定义 get 方法:

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:32:37 25 4
gpt4 key购买 nike

我使用 PropertyModel 作为我的 DropDownChoice 的一部分,如下所示:

    List<String> choices = Arrays.asList(new String[] { "Library", "School Office", "Science Dept" });
String selected = "Library";

DropDownChoice<String> serviceDDC =
new DropDownChoice<String>("service", new PropertyModel(this, "choices.0"), choices);

不知何故我抛出了这个异常:

caused by: org.apache.wicket.WicketRuntimeException: No get method defined for class: class com.samoo.tool.pages.CreatePrintingJob expression: choices
at org.apache.wicket.util.lang.PropertyResolver.getGetAndSetter(PropertyResolver.java:481)
at org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:332)
at org.apache.wicket.util.lang.PropertyResolver.getObjectAndGetSetter(PropertyResolver.java:242)
at org.apache.wicket.util.lang.PropertyResolver.getValue(PropertyResolver.java:95)
at org.apache.wicket.model.AbstractPropertyModel.getObject(AbstractPropertyModel.java:130)
at org.apache.wicket.Component.getDefaultModelObject(Component.java:1724)

....

我知道表达有问题。我一直在尝试不同的参数输入,但它仍然不起作用。谁能帮忙?

最佳答案

由于您正在使用 PropertyModel(this, "choices.0"),Wicket 正试图通过方法 的反射找到名为 choices 的属性声明 PropertyModel 的类的 getChoices()。此方法似乎不存在于 com.samoo.tool.pages.CreatePrintingJob 中,如异常所述。

此外,如果 0 是一个索引,您应该使用 [index] 表达式访问它,正如这个 JIRA 问题所建议的:PropertyModel does not support index only property ("[0]")

但是,您似乎想将 DropDownChoice 初始化为 choices 的第一个元素。但是,如果将 DropDownChoice 的模型设置为 PropertyModel(this, "choices.[0"]),Wicket 将执行的操作将按以下方式映射此 DropDownChoice 的选择:

  • 在呈现(预)选择的表单时,它将使用 choices 列表中的第一个元素。
  • 在表单提交时存储用户选择的值,它会将选择存储在 choices 列表的第一个位置。

总而言之,表示 DropDownChoice 选择的支持对象将是 choices 列表中的第一个元素。

因此,您可能希望使用完全不同的模型,独立于选择列表,作为表示 DDC 选择的支持对象。

List<String> choices = Arrays.asList(new String[] { "Library", "School Office", 
"Science Dept" });
String selected = "Library";
IModel dropdownModel = new Model<String>(choices[0]);
DropDownChoice<String> serviceDDC =
new DropDownChoice<String>("service", dropdownModel, choices);

您可能会发现以下链接很有用:

关于java - PropertyModel 表达式的异常 : org. apache.wicket.WicketRuntimeException:没有为类定义 get 方法:,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8266110/

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