2012-09-13 3 views
0

며칠 이래 Seam을 배우고 있는데 <h:selectManyCheckbox><f:selectItems> 태그를 사용하여 간단한 필터를 만들고 싶습니다. 여기 태그와 파편 XHTML 파일입니다<h : selectManyCheckbox> 및 <f : selectItems>를 기준으로 사용 방법을 수정하는 방법

UserSessionSession에서
<h:selectManyCheckbox value="#{userSessionsSession.selected}"> 
    <f:selectItems value="#{usersSessionsPage.logLevelList}" /> 
</h:selectManyCheckbox> 

내가 가진 :

private List<String> selected; 

    public List<String> getSelected() { 
     return selected; 
    } 

    public void setSelected(List<String> selected) { 
     this.selected = selected; 
    } 

UserSessionPage :

if (selected != null && !ANY_STATUS.equals(selected)) { 
      criteria.add(Restrictions.eq("mdoUserSessionDetStatus.code", selected)); 
     } 
: 기준 restictions와
private List<SelectItem> logLevelList; 

public List<SelectItem> getLogLevelList(){ 
     if(logLevelList == null){ 
      logLevelList = new ArrayList<SelectItem>(); 
      Collection<MdoUserSessionDetStatus> tmpList = sessionAuditUtils.getDetailsStatusEntities(); 
      for(MdoUserSessionDetStatus mdo: tmpList){ 
       logLevelList.add(new SelectItem(mdo.getCode(), mdo.getName())); 
      } 
     } 
     return logLevelList; 
    } 

과 기능에

내가 확인하고 옵션 아무 일도 발생하지 않고 콘솔 디스플레이합니다 경고 제출할 때 :이 이벤트를 처리 해결하는 방법을 모르는

WARNING: FacesMessage(s) have been enqueued, but may not have been displayed. 
sourceId=filterPanelForm:j_id163[severity=(ERROR 2), summary=(Conversion Error setting value 'DEBUG' for '#{userSessionsSession.selected}'.), detail=(Conversion Error setting value 'DEBUG' for '#{userSessionsSession.selected}'.)] 

, 하나가 나를 도울 수 있습니까? 감사하겠습니다.

+1

시도 '추가 <시간 : 메시지 globalOnly = "진정한"/>'이 페이지에 오류가 표시됩니다 그리고 당신은 늘 경고 – Daniel

답변

0

당신은 변경해야합니다 그것이

private SelectItem[] logLevelList; 

public SelectItem[] getLogLevelList(){ 

if(logLevelList == null){ 

Collection<MdoUserSessionDetStatus> tmpList = sessionAuditUtils. 
                getDetailsStatusEntities(); 

logLevelList = new SelectItem[tmpList .size() + 1]; 

for(MdoUserSessionDetStatus mdo: tmpList){ 
      logLevelList.add(new SelectItem(mdo.getCode(), mdo.getName())); 
     } 
    } 
    return logLevelList; 
} 
+0

과 서버에 로그를 무엇을 얻을 이 코드에는 오류가 표시됩니다 –

+0

정확히 무엇이 바뀌 었는지 명확하게 말하지 않았기 때문에 대답을 이해하기 어렵습니다. 코드를 기반으로, 기본적으로'List '유형을'SelectItem []'(컴파일 오류!)로 변경합니다. 이것은 말이되지 않습니다. 두 유형 모두 양호한 것으로 작동합니다. 당신은 또한 OP의 구체적인 문제를 해결하는 방법에 대해 설명하지 않습니다. OP의 구체적인 문제에 실제로 응답하지 않고 어둠 속에서 추측하고 찌르는 것입니다. 이 답변은 삭제해야합니다. 누구든지이 대답을 너무 많이 외면한 사람도 잘못입니다. – BalusC

+0

답변의 코드가 컴파일되지 않습니다. 'SelectItem []'에는'add()'메소드가 없습니다. ''SelectItem []'또는'List '을 반환하는지에 상관없이''에 대한 차이점은 없습니다. 당신은 기본적으로 설명/대답 * 아무것도하지 않습니다. 문제를 실제로 이해하지 않고 어둠 속에서 촬영으로 코드 스 니펫을 게시하는 것입니다. – BalusC