2015-03-06 5 views
-3

Мне нужна ваша помощь в получении значений списка на две переменные. В моем списке есть описания и коды. Однако мне нужно поместить описания в переменную и коды в другую переменную, поэтому как я могу это достичь.Как получить метку выбранного элемента в управляемом компоненте

Мой код

private String[] selectedCertificates; 
private List<SelectItem> Certificates; 

    public List<SelectItem> getCertificatesList(){ 
    Certificates = new ArrayList<SelectItem>(); 
    Certificates.add(new SelectItem("Certificate A","A")); 
    Certificates.add(new SelectItem("Certificate B","B")); 
    return bankCertificates; 

} 

public void setCertificates(List<SelectItem> Certificates) { 
    this.Certificates = Certificates; 
} 
// Setters and Getters 

Выберите Код товара:

      <p:selectManyCheckbox id="Certificates" value="#{user.selectedCertificates}" 
               layout="pageDirection" disabled="#{user.secondToggle}"> 
          <f:selectItems value="#{user.Certificates}" var="bankCertificates" 
              itemLabel="#{user.CertificatesString}" itemValue="#{user.CertificatesCode}"/> 
         </p:selectManyCheckbox> 

, где я могу определить, что описание должно быть первое значение и код должен быть вторым значением в списке и I могут использовать их на странице.

Благодаря

+0

рассмотреть вопрос об использовании HashMap –

+0

мне нужно использовать список –

+2

Как получить ... список в 2-х переменных ... бррр, может быть, я слишком глуп, но я не могу undestand эту проблему программирования – Andremoniy

ответ

-1

Попробуйте

class SelectItem { 
    private String code; 
    private String description; 

    SelectItem (String code, String description) { 
     this.code = code; 
     this.description = description; 
    } 

    public String getCode() { 
     return code; 
    } 
    public String getDescription() { 
     return description; 
    } 
} 

Вот ваш главный класс

class MainClass { 
    public static void main (String...arg) { 
     //construct your list here using SelectItem class objects 
     List<SelectItem> certificates = = new ArrayList<SelectItem>(); 
     certificates.add(new SelectItem("Certificate A","A")); 
     certificates.add(new SelectItem("Certificate B","B")); 

     //now first read the SelectItem objects you have added to the list 
     //or you can also iterate through the list, modify accordingly 
     SelectItem si1 = certificates.get(0); 
     //to read the code and description use the getters defined in SelectItem 
     si1.getCode(); si1.getDescription(); 
    } 
} 

Вы также можете создать метод, к которому вы можете передать индекс, который вы хотите прочитать из списка , Надеюсь это поможет.

-1

Попробуйте сделать как folows если у вас есть добытчиками на вашем SelectItem фасоли (я должен у вас есть описание полей и код), он сохраняет свои поля объекта, который находится на первом месте в вашем ArrayList.

String description = Certificates.get(0).getDescription(); 
String code = Certificates.get(0).getCode(); 
+0

Будет ли оно получать только одно значение или в списке? Могу ли я сделать это в одной фасоли? –

+0

Он получит значения ваших полей объекта и сохранит их в ваших переменных описания и кода, вы сделаете это там, где вам нужно, если вы хотите, чтобы вы могли объявлять свои переменные на своей странице и инициализировать их полями объектов, которые содержатся в список, или вы можете инициализировать их в своем контроллере (или что-то еще, что у вас есть) и передать на страницу только описание и переменные кода (но вам нужно знать, какой объект вам нужен из вашего списка, по индексу которого он находится). – drgPP