jsf调用了错误的setter

jsf调用了错误的setter,jsf,Jsf,我的问题是: 第一个setter不是第二个setter是call,不是understand?走吧 我的托管bean: public class ManagedBean { public Pessoa getPersonByParam(String a){ return hash.get(a); } } 我的页面: <h:inputText value="#{mbean.getPersonByParam(param).name}"> </h:

我的问题是:

第一个setter不是第二个setter是call,不是understand?走吧

我的托管bean:

public class ManagedBean {

    public Pessoa getPersonByParam(String a){
        return hash.get(a);
    }

}
我的页面:

<h:inputText value="#{mbean.getPersonByParam(param).name}">
</h:inputText>
我的堆栈:

Servlet.service() for servlet Faces Servlet threw exception: javax.el.PropertyNotFoundException:/time.xhtml @37,82 value="#
{mbean.getPersonByParam(param).name}": /time.xhtml @35,74 value="#
{mbean.getPersonByParam(param).name}": The class 'br.com.diario.test.ManagedBean' does not have the property 'getPersonByParam'.

有什么想法吗?

通过EL表达式,您可以访问数组、HashMap和TreeMap。因此,最好将HashMap声明为属性,这样就可以在XHTML页面中访问它。 范例

JAVA代码

public class ManagedBean {

    HashMap<String, Person> hash = new HashMap<String, Person>();

    public HashMap<String, Person> getHash(){
        return hash;
    }
}
公共类ManagedBean{
HashMap hash=新的HashMap();
公共HashMap getHash(){
返回散列;
}
}
XHTML代码

<h:inputText value="#{mbean.hash[param].name}" />


JSF的哪个版本?我的版本是2.0,jboss为7.1
<h:inputText value="#{mbean.hash[param].name}" />