p:selectOneRadio不调用backing bean方法

时间:2016-04-30 10:24:58

标签: jsf primefaces

好吧,所以我多年来一直试图解决这个问题,但这是不可能的。我的xhtml中有一个带单选按钮的表单。表单中包含的单选按钮应该是一个对象列表,使用这些作为选择项。正确检索这些值并显示在单选按钮的选项中。但是,当我实际上试图通过调用等效的setter来保存其中一个值时,没有任何事情发生(即从不调用setter)。我的表格有以下结构:

...
<h:form id="xform">      
    <p:selectOneRadio id="supervisor" value="#{cntrl.demo}" layout="grid" columns="3">
        <f:selectItems value="#{cntrl.demos}" var="s" itemLabel="#{s}" itemValue="#{s}"/>
    </p:selectOneRadio>
    <p:commandButton value="submit" action="#{cntrl.register}" update="xform"/>
</h:form>

我的Cntrl类包含以下方法:

@Named
@ViewScoped
public class Cntrl implements Serializable{

public void register() {
    //do some stuff
}

public void setDemo(Demo demo) {
    this.demo = demo;
}

public List<Demo> getDemos() {
    return demos;
}
///...more code
}

因此getDemos已正确调用,按钮已正确填充等。但setDemo永远不会被调用

0 个答案:

没有答案