SORU
22 Kasım 2011, Salı


Ne kadar OLUMSUZLUK bir numaralama açılır menü yapmak

Benim sorum bir durum seçin, böylece selectOneMenu bir açılır yapmak istiyorum. F:selectİtem daha esnek eğer çeteleler sırası değişirse, ve eğer bu liste büyük olsaydı ne olacağını dikkate almak mümkün müdür? Ve bu daha iyi yapabilirim? Ve mümkün müdür "seçin" öğesini sorusu olan var mı? otomatik olarak

Numaralama sınıf

public enum Status {
    SUBMITTED,
    REJECTED,
    APPROVED
}

Soru varlık

@Enumerated(EnumType.STRING)
private Status status;

AKSARAY

        <div class="field">
            <h:outputLabel for="questionStatus" value="Status" />
            <h:selectOneMenu id="questionStatus" value="#{bean.question.status}" >
                <f:selectItem itemLabel="Submitted" itemValue="0" />
                <f:selectItem itemLabel="Rejected" itemValue="1" />
                <f:selectItem itemLabel="Approved" itemValue="2" />
            </h:selectOneMenu>
            <hr />
        </div>

CEVAP
22 Kasım 2011, Salı


AKSARAY, bu yüzden enum için yerleşik bir dönüştürücü vardır:

@ManagedBean
@ApplicationScoped
public class Data {

    public Status[] getStatuses() {
        return Status.values();
    }

}

ile

<h:selectOneMenu value="#{bean.question.status}" >
    <f:selectItems value="#{data.statuses}" />
</h:selectOneMenu>

(not: bu yana AKSARAY 2.0 gerek yok artık sağlamak SelectItem[] List<SelectItem> T[] List<T> kabul edilir olarak erişebilirsiniz geçerli öğe var öznitelik)

Eğer etiketleri de kontrol etmek istiyorsanız Status numaralama için bunları ekleyebilirsiniz:

public enum Status {

    SUBMITTED("Submitted"),
    REJECTED("Rejected"),
    APPROVED("Approved");

    private String label;

    private Status(String label) {
        this.label = label;
    }

    public String getLabel() {
        return label;
    }

}

ile

<f:selectItems value="#{data.statuses}" var="status"
    itemValue="#{status}" itemLabel="#{status.label}" />

Veya, daha iyi, numaralama değeri yerelleştirilmiş kaynak paketinin bir özellik anahtar (EL 3.0 gerekli):

<f:selectItems value="#{data.statuses}" var="status"
    itemValue="#{status}" itemLabel="#{text['data.status.'  = status]}" />

bu özellikler bir dosya kaynak paketi ile ilgili olarak 24**

data.status.SUBMITTED = Submitted
data.status.REJECTED = Rejected
data.status.APPROVED = Approved

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BigBoyTV

    BigBoyTV

    25 EYLÜL 2013
  • SDSARG3

    SDSARG3

    14 Mart 2009
  • Skittles Page

    Skittles Pag

    28 Mart 2011