2012-09-19 2 views
1

기본 라디오 선택을 변경하려고 할 때 h : selectOneRadio 및 문제가있는 Im 사용. 다음은 JSF 코드 아래기본 라디오 선택을 변경하는 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> 

내가 radioselection 옵션을 변경하려고 할 때 문제가 발생 selectedRecurrenceValue

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; 
} 

에 대한 backingbean 코드입니다. Im은 동적으로 가져 오기 때문에 selectedRecurrenceValue 값을 초기화 할 수 없습니다. 다른 라디오 버튼을 선택하려고 할 때, Im은 selectedRecurrenceValue에 대한 널 포인터 예외를 수신합니다. 문제를 해결할 수있는 조언이 있으면 도움이 될 것입니다. 사전에 감사드립니다. NPE를 방지하기 전에 초기화 할

다음
<h:selectOneRadio id="radioSelectID1" 
        layout="pageDirection" 
        value="#{scheduleBean.adminScheduledetailsVO.frequency}" > 

물론 adminScheduledetailsVO 요구 : 나는 당신의 질문을 읽으면

+0

NPE는 어디에서 발생합니까? selectedRecurrenceValue에 대한 setter에서? 질문에 setter 메서드를 추가 할 수 있습니까? –

+0

안녕하세요 매트, 나는 setter 메서드를 이미 추가하고 새로운 옵션을 선택하려고 할 때 코드를 디버깅하려고했습니다. 새로운 옵션을 선택할 때 컨트롤은 selectedRecurrenceValue의 getter 메서드로 직접오고 NPE는 @electRecurrenceValue = adminScheduledetailsVO.getFrequency();가 발생합니다. adminScheduledetailsVO가 null 인 것 같습니다. 내가 선택한 새로운 옵션이 설정되지 않은 것 같습니다. 이유를 모르십니까? – vr3w3c9

답변

1

은 바로 당신이 필드 selectedRecurrenceValue을 필요로하지 않으며, 당신의 selectOneRadio에 직접 adminScheduledetailsVO.frequency을 결합해야한다는 것 .

+0

감사를 위해 Matt에게 감사드립니다. 그러나 확실하지 않은 Im는 내가 그것을 초기화해야하는지 알려주시겠습니까? – vr3w3c9

+0

Bean을 생성하는 동안 또는 생성 한 후에 새 인스턴스를 만들어야합니다. –

관련 문제