【问题标题】:Wrong setter called by jsfjsf调用了错误的setter
【发布时间】:2014-11-11 02:51:12
【问题描述】:

我的问题是:

第一个setter而不是第二个setter是call,不是undestand吗?走吧

我的托管 bean:

public class ManagedBean {

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

}

我的页面:

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

我的模特:

public class Person {

    private Long id; 
    private String name;

    // getter / setter

}

我的堆栈:

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'.

有什么想法吗?

【问题讨论】:

  • JSF 的哪个版本?
  • 我的版本是 2.0,jboss 是 7.1

标签: jsf


【解决方案1】:

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

JAVA 代码

public class ManagedBean {

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

    public HashMap<String, Person> getHash(){
        return hash;
    }
}

XHTML 代码

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

【讨论】:

    猜你喜欢
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多