gpt4 book ai didi

java - f :selectItems - possible? 中的两个集合

转载 作者:行者123 更新时间:2023-12-02 08:21:27 25 4
gpt4 key购买 nike

我有两个 vector :

private Vector<City> allCities;
private Vector<Address> allAddresses;

城市对象包含城市 ID、邮政编码和城市名称,地址对象包含地址 ID、街道和城市 ID。 vector allCities 可以包含比 allAddresses 使用的城市更多的城市。

现在我想显示 h:selectOneListbox 中的所有地址,但不应显示 cityId,而应显示邮政编码和城市名称,如下所示:

postcode, cityname, street

有什么方法可以在不改变 vector 的情况下做到这一点吗?也许 c:forEach 是一个选项?

以下内容尚不工作,因为我不知道如何连接或使用 f:selectItems 中的两个 vector 。

        <h:selectOneListbox id="addresses"
rendered="#{!empty customerAddresses.allAddresses}"
required="true" requiredMessage="Please choose an address!"
value="#{customerAddresses.addrId}" label="Addresses">
<f:selectItems value="#{customerAddresses.allAddresses}" var="addr"
itemLabel="#{addr.postcode}, #{addr.cityname}, #{addr.street}"
itemValue="#{addr.addressId}" />
</h:selectOneListbox>

最佳答案

您应该更改一些基本设置:

首先,您应该使用List而不是Vector

然后让Address类有一个成员City,如下所示:

public class Address {
private City city;
private int addressId;
private String street;

// getters and setters
}

然后你可以这样在你的facelet中使用它:

<h:selectOneListbox id="addresses"
rendered="#{!empty customerAddresses.allAddresses}"
required="true" requiredMessage="Please choose an address!"
value="#{customerAddresses.addrId}" label="Addresses">
<f:selectItems value="#{customerAddresses.allAddresses}" var="addr"
itemLabel="#{addr.city.postcode}, #{addr.city.cityname}, #{addr.street}"
itemValue="#{addr.addressId}" />
</h:selectOneListbox>

关于java - f :selectItems - possible? 中的两个集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5388312/

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