2012-06-11 2 views
2

디스플레이 태그 라이브러리 (버전 1.1)를 사용하여 테이블을 만들고 데이터베이스의 값으로 채 웁니다. 특정 행을 표시하고 싶지 않습니다. 예를 들어, 주어진 문자열이나 정규식과 일치하는 레코드 만 보여주고 싶습니다. 데이터베이스에서 검색displaytag에서 행을 숨기는 방법은 무엇입니까?

기록 :

foo 
bar 
string1 
foo2 
bar2 
string2 

을 감안할 때 필터 : "foo는"

예상 결과 :

foo 
foo2 

비고 - 나는 캐시 레코드 목록을 필터링해야, 난 필터를 데이터베이스 쿼리에 직접 적용 할 수 없습니다.

도움 주셔서 감사합니다.

+0

왜 비즈니스 논리를 관리하기 위해 프리젠 테이션 계층을 원하십니까? – maksimov

+0

나는 이것이 최선의 접근법이 아니라는 것을 알고 있지만, 직장에서이 임무를 부여 받았고 기존 애플리케이션을 리팩토링하는 데 너무 오래 걸릴 것입니다. – cosmincalistru

+0

만약 당신이 너무 constrictted 난 항상 당신이 새로운 목록에 필요한 결과를 필터링하려면 JSP 코드'<% ... %>'쓸 수있는 것 같아요,이 목록을 속성으로 설정하고 당신의' display : table />'을 사용하십시오. – maksimov

답변

0
  1. 필터가 클라이언트 측에서만 작동하도록하려면 서버를 치지 말고 JQuery 플러그인을 사용해보십시오. 테이블이나 결과 세트 정렬 및 필터/검색을 수행하는 JQuery 플러그인이 많이 있습니다.

  2. 서버를 처리하려면 org.displaytag.pagination.PaginatedList 인터페이스에 대한 사용자 지정 구현을 작성하고 검색/정렬 기준에 따라 호출 할 수있는 고유 한 필터 메서드를 추가하십시오. 이 인터페이스를 구현하면 목록은 PaginatedList 유형이어야합니다. 자세한 내용은 인터페이스 사양 및 DisplayTagDisplay tag pagination problem을 참조하십시오.