나는 <h:dataTable>
을 사용하여 데이터베이스의 데이터를 나열합니다. 우리는 페이지에 많은 레코드를 가지고 있습니다. 이제 각 행에있는 체크 박스로 여러 레코드를 선택하고 싶습니다. 이것을 어떻게 할 수 있습니까?<h : selectBooleanCheckbox>를 사용하여 <h:dataTable>의 여러 행을 선택하는 방법
답변
귀하의 엔티티는 고유 한 기술 식별자 (예 : DB의 자동 증가 순서)가 잘 구성되어 있다고 가정합니다.
public class Entity {
private Long id;
// ...
}
그렇지 않은 경우 추가해야합니다.
그런 다음 표에 연결된 빈에 Map<Long, Boolean>
특성을 추가하십시오.
private Map<Long, Boolean> checked = new HashMap<Long, Boolean>();
이 (preinitialization도 (게시물) 생성자, 당신을 위해 그것을 할 수 없습니다, 적어도 JSF를 한 곳에서 일어날 수 있으며, 세터가 필요, 오뿐만 아니라 그것을 게터를 제공하지 않습니다)
그런 다음 엔티티 ID로 부울 값에 매핑되는 체크 박스가있는 열을 키로 추가하십시오.
<h:dataTable value="#{bean.entities}" var="entity">
<h:column>
<h:selectBooleanCheckbox value="#{bean.checked[entity.id]}" />
</h:column>
...
</h:dataTable>
<h:commandButton value="Delete" action="#{bean.delete}" />
이제, 삭제 버튼과 관련된 조치 방법, 수집하고 다음과 같이 선택한 항목을 삭제할 수 있습니다
public void delete() {
List<Entity> entitiesToDelete = new ArrayList<Entity>();
for (Entity entity : entities) {
if (checked.get(entity.getId())) {
entitiesToDelete.add(entity);
}
}
entityService.delete(entitiesToDelete);
checked.clear();
loadEntities();
}
의
나는 그것을 얻었다 , 대답 해 주셔서 감사합니다 ! – xuanhung2401
나는 똑같은 코드를 가지고 있지만이 줄에서 NullPointerException을 얻고있다. if (checked.get (entity.getId())) {' – unleashed
- 1. UITableView에서 여러 행을 선택하는 방법
- 2. <h : outputText>에 <h : selectOneMenu>의 선택된 값의 레이블을 표시하는 방법은 무엇입니까?
- 3. jQuery에서 <br>의 전후에 텍스트를 선택하는 방법?
- 4. 여러 List <>를 DatagridView의 데이터 소스로 사용하는 방법
- 5. QListView에서 행을 선택하는 방법
- 6. UIPickerView에서 행을 선택하는 방법
- 7. 테이블에서 행을 선택하는 방법
- 8. optparse.optionParser()를 사용하여 "-h"output.when을 수정하는 방법
- 9. Tortoise svn <<<<를 파일에 추가 중!
- 10. Asp.net 페이지의 <%의 $ 서버 코드 %>를 사용하는 방법
- 11. SFINAE를 사용하여 글로벌 연산자 <<를 확인하십시오.
- 12. mysql_query의 마지막 행을 선택하는 방법?
- 13. 더 나은 <h : selectManyCheckbox> 레이아웃?
- 14. mongoid에서 '<<'를 사용하여 임베드 된 항목에 after_save를 할당하면?
- 15. 맞춤 << 방법
- 16. 목록에서 선택하는 방법 <IEnumerable <ItemClass>> ~ IEnumerable <ItemClass>?
- 17. <?의 차이점은 무엇입니까? echo __(); 및 <= __();
- 18. Enumerable <T>의 인스턴스를 캐스팅하는 방법. (술부)를 IEnumerable <T>에?
- 19. 동일한 스타일의 <h : commandLink>와 <h : commandButton> 사이의 CSS 문제
- 20. nodesForXPath (NSXMLDocument)를 사용하여 특성을 선택하는 방법
- 21. 연산자 << 오버로드 - C++를 자바
- 22. 연산자 "<<"를 포인터에 사용
- 23. 로드 그리드에서 행을 선택하는 방법?
- 24. 동적으로 예를 들어, JQuery와</p> <p>를 사용하여 행을 추가하는 동안 동적으로 OBJECT_ID를 변경하는 방법 JQuery와
- 25. <h : selectOneMenu> NullPointerException getAsObject 메서드
- 26. 레일 - 내용 출력, 살균 또는 <% = h?
- 27. <%=h ... %>은 Rails에서 무엇을 의미합니까?
- 28. <코코아/코코아. h> 위치
- 29. 문서화되지 않은 ERB 구문 : <%=h ... %>
- 30. CSS <h> 마진 도움이 필요하십니까?
가능한 복제 [JSF의 시간 사용 방법 : 시간과 selectBooleanCheckbox를 : dataTable 행당 하나의 개체를 만들 수 있습니까?] (http://stackoverflow.com/questions/2524514/how-to-use-jsfs-hselectbooleancheckbox-with-hdatatable-to-create-one-object-p) – BalusC