2012-06-11 3 views
1

다음 예제는 핵심 JSF 책에서 다음 예제를 찾았습니다.이 예제에서는 데이터 모델을 사용하여 선택한 행을 찾은 다음 삭제합니다.선택한 행을 찾았습니다

하지만이 줄에서 오류가 발견되었습니다. names.remove (nameToDelete);

내가 어떻게 해결할 수 있습니까?

package com.jsf.model; 

import java.io.Serializable; 

import javax.faces.model.ArrayDataModel; 
import javax.faces.model.DataModel; 

public class TableData implements Serializable { 

    private static final Names[] names = new Names[] { 
     new Names("William", "Dupont"), 
     new Names("Anna", "Keeney"), 
     new Names("Mariko", "Randor"), 
     new Names("John", "Wilson") 
    }; 

    private DataModel<Names> model = new ArrayDataModel<Names>(names); 
    public DataModel<Names> getNames() { return model; } 


    public String deleteRow() { 
     Names nameToDelete = model.getRowData(); 
     names.remove(nameToDelete); 
     return null; 
    } 
} 

덕분에 당신은 이름에 remove(), 이름의 배열을 호출하는 모든

+0

무엇이 오류입니까? 내가 생각할 수있는 첫 번째 일은 setRowIndex (int index)를 호출하지 않기 때문에 getRowData가 null을 반환 할 수 있습니다. – purtip31

+0

이 오류는 "배열 유형 이름에서 (Names)를 호출 할 수 없습니다.이 행을"names.Delete (namesToDelete) "라고 쓰면이 문장 아래에 빨간색 줄이 나타납니다. – jmt

답변

1

. 배열에는 remove 함수가 없으므로 모델에서 호출하려고합니다.

+0

전화 해 주시면 어떻게 전화 할 수 있습니까? 모델에서 remove()? – jmt

+1

Array 대신 List를 사용하여 문제를 해결 한 솔루션을 찾았으며 http://balusc.blogspot.com/2010/06/benefits-and-pitfalls-of-viewscoped에서 사용할 수 있습니다. html 나는 해결책을 발견 BalusC 및 purtip31 감사합니다. – jmt