簡體   English   中英

在掛毯中選擇名稱不為id的

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM