2012-07-15 4 views
0

나는 아주 간단한 jsf 애플리케이션을 가지고있다. List.xhtml에서 행을 정렬하려고합니다. 이 행은 # {friendsController.items}에서 가져온 것으로 알고 있습니다. 이 항목을 특정 방식으로 정렬하려면 어떻게해야합니까? 특정 열을 기준으로 정렬하지 않으려 고합니다. "손으로 정렬"하고 싶습니다. 내가 작업하고있는 일련의 규칙들. 그 말은 "X"행을 첫 번째 위치에 놓은 다음 "Y"를 두 번째 위치에 넣고 자 함을 의미합니다 .... 미리 도움을 청하십시오.List에서 JSF로 항목 정렬하기

PD : 내 영어로는 유감 스럽지만 제 2 언어입니다.

답변

0

실제로이 문제에 대한 내장 JSF 솔루션은 없습니다 (RichFaces 및 PrimeFaces에는 끌어서 놓기 구성 요소가 있지만 사용자의 경우에는 작동하지 않습니다). (주석에 기반을 둔)

편집 : 최후의 자원으로,이 문제를 처리하는 jQuery 플러그인과 (좋은 예와) 좋은 자습서가

에 대한 경우 항목을 채운 후 목록을 정렬해야합니다. 이 경우에 대한 코드 샘플 :

@ManagedBean 
@ViewScoped 
public class MyBean { 
    //attributes... 
    private List<Element> myList; 

    public MyBean() { 
     myList = getMyListValues(); //just to get the idea 
     Comparator<Element> comparator = new Comparator<Element>() { 
      @Override 
      public int compare(Element e1, Element e2) { 
       //A basic logic for a comparator, assuming there is an Id attribute 
       //in Element class. Also, make sure to test for null values (just in case...) 
       return (e1.getId() > e2.getId()) ? 1 : (e1.getId() < e2.getId()) -1 : 0; 
      } 
     }; 
     Collections.sort(myList, comparator); 
    } 

    //getters and setters for the attributes... 
} 

목록을 정렬 한 후 <h:dataTable>를 사용하여 표시 할 수 있으며 정렬됩니다.

참고 : getMyList() 메서드로 목록을 정렬하지 마십시오. JSF 프레임 워크는 getter 및 setter에 대한 호출을 1 회 이상 수행하므로이 메서드에 무거운 논리가 없어야합니다.

+0

답변 주셔서 감사합니다. Luiggi. 내가 나 자신을 설명했는지 모르겠다. 나는 그들을 보여주기 전에 항목을 정렬하고 싶다. 정렬 작업은 컨트롤러에서 발생합니다. 사용자가 정렬 할 수있는 솔루션이 무엇인지 이해합니다. – user1020015

+0

@ user1020015 답변은 회원님의 의견을 기반으로 수정되었습니다. –