[英]Select in Tapestry with name not id
我正在使用Tapestry中的select組件。 我想在表單中選擇一個對象,並且希望它在選擇選項中顯示名稱,但是它顯示id。
TML:
<t:beaneditform object="soba" exclude="idSobe" add="idHotel" >
<p:idHotel>
<t:label for="idHotel"/>:
<t:select t:blankLabel="Odaberi Hotel" t:id="idHotel"
encoder="encoder" model="hoteli" value="idHotel"
/>
</p:idHotel>
</t:beaneditform>
Java的:
@Property
private Soba onesoba;
@Inject
private HotelDao hotelDao;
@Property
private Hotel idHotel;
@Property
@Persist
private List<Hotel> hoteli;
@Property
private List<Soba>sobe;
public ValueEncoder getEncoder() {
return new ValueEncoder<Hotel>() {
@Override
public String toClient(Hotel v) {
return String.valueOf(v.getIdHotel());
}
@Override
public Hotel toValue(String string) {
Hotel hot = hotelDao.getHotelById(Integer.parseInt(string));
return hot;
}
當我運行該應用程序並想要選擇一個obj時,我得到了這個
但是,當點擊“添加酒店”時,我不希望名稱屬性為:com.mycompany ...
如果有人對如何在選擇組件中更改該屬性有任何建議,我將不勝感激。
您需要傳遞一個SelectModel,指定要顯示的屬性。
...
@Property
@Persist
private List<Hotel> hoteli;
@Inject
private SelectModelFactory smf;
public SelectModel getHoteliModel()
{
return smf.create(hoteli, "name") ;
}
...
在.tml中,您將擁有:
<t:select t:blankLabel="Odaberi Hotel" t:id="idHotel"
encoder="encoder" model="hoteliModel" value="idHotel"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.