gpt4 book ai didi

java - 如何链接 Wicket 下拉列表事件?

转载 作者:行者123 更新时间:2023-11-30 05:08:40 24 4
gpt4 key购买 nike

我正在尝试链接下拉列表事件。

我有这些数据:

Name auidi (a4{ 2006,2007,2008 } , a6{ 2006,2007,2009 } ,tt { 2005,2008,2010 }) ford (crown {2009,2010} , escape{2008,2009})

当我选择汽车名称时,我希望显示型号。后来我选择了型号,我希望显示年份。

我找到了这个例子:http://wicketstuff.org/wicket14/nested/?wicket:bookmarkablePage=:org.apache.wicket.examples.ajax.builtin.ChoicePage

但是那里有两个下拉菜单。还有一张 map 。我应该在 map 中使用 map 吗?如果是这样,我该如何设置模型?

本地图类型为 Map<String ,List<String >> 时,模型如下:

IModel<List<? extends String>> makeChoices = 
new AbstractReadOnlyModel<List<? extends String>>()
{
@Override
public List<String> getObject()
{
Set<String> keys = modelsMap.keySet();
List<String> list = new ArrayList<String>(keys);
return list;
}
};

如果 map 是Map<String,Map<String ,List<String >>>怎么办? ?

如果我编码

IModel<Map? extends String>> makeChoices = new AbstractReadOnlyModel<Map<? extends String>>() 

我的 IDE 警告我它需要两个参数,但我不知道如何将这些值分配给模型中的映射。

最佳答案

对于 3 个 DropDownChoices 的情况,您将需要 3 个模型,并且所有模型都需要表示提供选择的列表。您需要嵌套映射来模拟它们的关系,然后进行检索,例如:

Map<String, Map<String, List<String>>> cars; //fill data
IModel<List<? extends String>> makeChoices = new AbstractReadOnlyModel<List<? extends String>>() {
@Override
public List<String> getObject() {
Set<String> keys = cars.keySet();
List<String> list = new ArrayList<String>(keys);
return list;
}
};

IModel<List<? extends String>> modelChoices = new AbstractReadOnlyModel<List<? extends String>>() {
@Override
public List<String> getObject() {
Map<String, List<String>> models = cars.get(selectedMake);
if (models == null) {
return Collections.emptyList();
} else {
List<String> list = new ArrayList<String>(models.keySet());
return list;
}
}
};

IModel<List<? extends String>> yearChoices = new AbstractReadOnlyModel<List<? extends String>>() {
@Override
public List<String> getObject() {
Map<String, List<String>> models = cars.get(selectedMake);
if (models == null) {
return Collections.emptyList();
} else {
return models.get(selectedModel);
}
}
};

关于java - 如何链接 Wicket 下拉列表事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4237047/

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