Java Primefaces 3.4 p:selectOneRadio值=p:ajax侦听器中的null
以下代码适用于PF 3.2,但当我切换到3.4时,SelectOneRadio值始终为空?我尝试将事件设置为change和valueChange,而不是默认单击,所有结果都是相同的value=null。如果p:ajax对主p:panelGrid进行了更新,IE8将两次命中setComp方法的空值Java Primefaces 3.4 p:selectOneRadio值=p:ajax侦听器中的null,java,jsf-2,primefaces,Java,Jsf 2,Primefaces,以下代码适用于PF 3.2,但当我切换到3.4时,SelectOneRadio值始终为空?我尝试将事件设置为change和valueChange,而不是默认单击,所有结果都是相同的value=null。如果p:ajax对主p:panelGrid进行了更新,IE8将两次命中setComp方法的空值 <p:panelGrid id="main" columns="1" styleClass="Grid"> <p:selectOneRadio id="newold" val
<p:panelGrid id="main" columns="1" styleClass="Grid">
<p:selectOneRadio id="newold" value="#{newmailer.selectedCompStatus}" >
<f:selectItems value="#{newmailer.options}" />
<p:ajax listener="#{newmailer.setComp}" update="main" />
</p:selectOneRadio>
</p:panelGrid>
private List<SelectItem> options;
public NewMailerBean(){
super();
images = new ArrayList<byte []>();
imagesNames = new ArrayList<String>();
options = new ArrayList<SelectItem>();
SelectItem option = new SelectItem("exist", "Existing Company", "This is for selectItems tag");
options.add(option);
option = new SelectItem("new", "New Company");
options.add(option);
}
public void setComp(AjaxBehaviorEvent event) {
String str = this.selectedCompStatus;
try {
if(str.equals("exist")){
setExist(true);
setShowInfo(true);
}else{
setExist(false);
setShowInfo(true);
}
我可以假设这两行event.getSource和test.getValue是一些实验的不经意的遗留,它们实际上不属于真正的代码吗?请从问题中删除它们,以减少代码噪音。是的,在3.2中,我也能够得到它们的值。我将从这个例子中删除它们。好的,回到具体问题。我不能用PF 3.4.1重现这个问题。原因肯定在别处。选项是什么类型的?是列表/字符串[]吗?如果是另一种类型,你有转换器吗?我编辑了代码部分以显示它是一个列表。另请注意,它位于p:wizard>>p:tab>>p:panel>>p:panelGrid>>p:fieldsetI已将selectOneRadio标记添加到test.xhtml中,仅使用h:form,setComp中的断点在单击第一次值为null时会被击中两次,第二次值被设置时会被击中???