【问题标题】:itemLabel="#{client2.nomClient}": Property 'nomClient' not found on type java.lang.StringitemLabel="#{client2.nomClient}":在 java.lang.String 类型上找不到属性“nomClient”
【发布时间】:2014-09-13 13:51:59
【问题描述】:

我将检索 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;
    }

【问题讨论】:

  • 请发布证据证明#{client2} 不是java.lang.String 的实例。您没有在问题的任何地方反驳异常消息。
  • 请发client2类的代码。我认为没有nomClient 属性。
  • @ColdHack the client2 它不是类它是 var 的名称我更改了类客户端但不起作用并且执行消息仍然
  • 可以发getMesElementsTest方法的签名吗?
  • @ColdHack 这是签名:private static Map mesElementsTest

标签: jsf primefaces


【解决方案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>
...

而且,这种形式更高效,因为您不需要填写其他数据结构。

希望对你有帮助

【讨论】:

  • 非常感谢您的帮助,但我的问题不是它在 var="Client2" 中的功能,在 java.lang.String 类型的属性中找不到视图
  • 如果问题依然存在,请将问题取消标记为已回答,让我们再次尝试解决真正的问题。有没有试过用我的例子来回答?
猜你喜欢
  • 2016-09-16
  • 2016-01-10
  • 2019-11-05
  • 2012-05-22
  • 2012-06-06
  • 2015-05-12
  • 2014-02-17
  • 2016-08-17
相关资源
最近更新 更多