0

通过在 SelectOneMenu 中选择 idem,我遇到了与设置属性相关的问题。就是这样:在表示层我有:

<h:selectOneMenu id="fio" value="#{page.personOwner}" disabled="#{page.readonly}" readonly="#{page.readonly}" >         
                                <a4j:support event="onchange" reRender="generalForm" ajaxSingle="true" />           
                                <f:selectItems value="#{page.agrGrpRelInsPersons}" ></f:selectItems>
                            </h:selectOneMenu>

所以,我可以用列表中的“agrGrpRelInsPersons”填充菜单。这是返回它的方法:

public List<SelectItem> getAgrGrpRelInsPersons(){
        List<SelectItem> persons = new ArrayList<SelectItem>();
        for(AgrGrpRel agrGrpRel : getAgreement().getAgrGrpRels()){
            for(InoPerRel inoPerRel :agrGrpRel.getAgreement().getInsObject().getInoPerRels()){
                persons.add(new SelectItem(((Person)inoPerRel.getPerson()), inoPerRel.getPerson().getName1()+" "+inoPerRel.getPerson().getName2()+" "+inoPerRel.getPerson().getName3()));
                }
            }
        return persons;
    }

..在这里您可以看到,作为 new SelectItem 中的第一个参数,我传递了一个对象 Person,我想将其设置为 setter:

public void setPersonOwner(Person person){
        getAgreementExt().setOwner(person);
    }

但是,这对我不起作用..现在我很高兴知道我做错了什么或我错过了什么。

感谢您的建议!

4

0 回答 0