itemLabel="#{client2.nomClient}": свойство 'nomClient' не найдено для типа java.lang.String

Я должен был бы получить значение select selectOneMenu, но когда я выполняю программу, это исключение появляется:

Etat HTTP 500 - /pages/T.xhtml @59,33 itemLabel="#{client2.nomClient}": Property 'nomClient' not found on type java.lang.String

это мой взгляд

<p:selectOneMenu value="#{ticketBean.maValeur}" 
                            style="width:210px; height:20px; font-size:10px; font-weight:1px;"
                            required="true" requiredMessage="REQUIRED">
                            <f:selectItem  itemLabel="Select Client"  itemValue=""/>
                            <f:selectItems  value="#{ticketBean.getMesElementsTest()}" var="client2" itemLabel="#{client2.nomClient}" itemValue="#{client2.nomClient}"
                                style="font-size:10px;">
                            </f:selectItems>

это мой классный клиент:

package com.model;

public class Client {
    private int idClient;
    private String nomClient;
    private String adresseClient;
    private String telephoneClient;
    private String mailClient;

// GETTERS && SETTERS 
}

это моя функция getMesElementsTest:

 private static Map<String, Object> mesElementsTest;
    private static ClientDaoImp clientDaoImp= new ClientDaoImp();   
    public static Map<String, Object> getMesElementsTest() {
        mesElementsClient = new LinkedHashMap<String, Object>();
        List<Client> clientlist = clientDaoImp.getAllClients();
        Iterator<Client> i = clientlist.iterator();
        while(i.hasNext()){
            Client client=i.next();
            mesElementsClient.put(client.getNomClient(),client.getNomClient());

        }    
        return mesElementsClient;
    }

1 ответ

Вы можете использовать только Listи есть что-то вроде этого:

...
public static List<Client> getMesElementsTest() {
        return clientDaoImp.getAllClients();    
        } 
...

на странице:

...    
<p:selectOneMenu value="#{ticketBean.maValeur}" style="..." required="true" requiredMessage="...">
       <f:selectItem  itemLabel="Select Client"  itemValue=""/>
       <f:selectItems  value="#{ticketBean.getMesElementsTest()}" var="client2" itemLabel="#{client2.nomClient}" itemValue="#{client2.nomClient}" style="...">
    </f:selectItems>
...

И эта форма более эффективна, поскольку вам не нужно заполнять другую структуру данных.

Надеюсь, поможет

Другие вопросы по тегам