我正在使用h:selectOneRadio并在尝试更改默认无线电选择时遇到问题。下面是JSF代码
<h:selectOneRadio id="radioSelectID1" layout="pageDirection" value="#{scheduleBean.selectedRecurrenceValue}" immediate="true" >
<f:selectItem id="dailyID" itemLabel="#{adminBean.adminScreenLabelVO.dailyLabel}" itemValue="#{scheduleBean.dailyValue}"></f:selectItem>
<f:selectItem id="weeklyID" itemLabel="#{adminBean.adminScreenLabelVO.weeklyLabel}" itemValue="#{scheduleBean.weeklyValue}"></f:selectItem>
<f:selectItem id="monthlyID" itemLabel="#{adminBean.adminScreenLabelVO.monthlyLabel}" itemValue="#{scheduleBean.monthlyValue}"></f:selectItem>
<f:ajax event="change" listener="#{scheduleBean.recurrenceChange}" render="recurrencePanelID" />
</h:selectOneRadio>
下面的是selectedRecurrenceValue
的backingbean代码public String getSelectedRecurrenceValue() {
if(selectedRecurrenceValue == null)
{
selectedRecurrenceValue = adminScheduledetailsVO.getFrequency();
if(selectedRecurrenceValue.equalsIgnoreCase(dailyValue))
{
dailyPanelRenderer = true ;
}
if(selectedRecurrenceValue.equalsIgnoreCase(weeklyValue))
{
dailyPanelRenderer = false ;
weeklyPanelRenderer = true ;
}
if(selectedRecurrenceValue.equalsIgnoreCase(monthlyValue))
{
monthlyPanelRenderer = true ;
}
}
return selectedRecurrenceValue;
}
当我尝试更改radioselection选项时会出现此问题。我无法初始化selectedRecurrenceValue值,因为我动态地获取它。当我尝试选择另一个单选按钮时,Im收到selectedRecurrenceValue的空指针异常。 任何解决问题的指针都会非常有用。谢谢你。
答案 0 :(得分:1)
如果我正确地阅读了您的问题,您似乎不需要字段selectedRecurrenceValue
并且应该adminScheduledetailsVO.frequency
直接绑定到您的selectOneRadio:
<h:selectOneRadio id="radioSelectID1"
layout="pageDirection"
value="#{scheduleBean.adminScheduledetailsVO.frequency}" >
然后当然需要初始化adminScheduledetailsVO
以避免NPE。