2010-12-14 4 views
0

가변 길이의 ArrayLists가 있고 null 인 경우도 있습니다. 이 ArrayList에는 일련의 객체가 포함되어 있습니다. 테이블에는 개체의 (일부) 특성을 기반으로하는 열이 있어야합니다. 그리고 테이블은 JSP로 표시되어야합니다.ArrayList를 <someObjects>을 HTML 테이블로 변환

두 가지 아이디어가 있습니다. 하나는 JSTL 태그를 사용하고 다른 하나는 JavaScript를 사용하는 것입니다. 도서관 제안을 환영합니다.

<table> 
<tr><td>Foo header</td><td>Bar header</td></tr> 
<c:forEach items="${yourRequestScopedArrayList}" var="obj"> 
    <tr> 
     <td>${obj.foo}</td> 
     <td>${obj.bar}</td> 
    </tr> 
</c:forEach> 
</table> 
+0

같은 것입니다. – BalusC

+0

실제로 저는 JavaScript를 언급하고 있지는 않지만, Stephen P (아래)는 이미 JavaScript가 Java Objects에 액세스 할 수 없음을 분명히했습니다. –

답변

0

JSTL은 더 (당신은 예를 들어, 아약스를 통해로드 필요가없는)

+0

가능한 한 JS를 피해야하는 이유는 무엇입니까? JS에 대한 의존성이 이미 존재하는 경우, JS는 jstl (html 만)보다 더 많은 기능을 가진 데이터 그리드를 제공 할 수 있습니다. 필요한 것은 List 을 JSON으로 전달하는 것입니다. sortable, filterable, reordable hideable 컬럼을 Ext-JS grid와 같이 사용할 수 있습니다 ... http://dev.sencha.com/deploy/deamples/grid/grid-plugins.html –

+0

@Juan Mendes 가능한 경우 JSTL을 사용하면 JavaScript가 브라우저를로드하기 때문에 js를 피할 수 있습니다. 그리고 OP가 말하는 경우는 JSTL –

+0

life.java를 사용하는 것이 가장 적합합니다. 당신의 주장은 나에게별로 의미가 없습니다. 귀하의 사이트가 JS가 작동하지 않아야하는 경우 사실 일 수 있습니다. 그렇지 않으면 귀하의 의견이 많은 JS를 모르는 사람처럼 들립니다. 예를 들어, 모든 상호 작용은 AJAX 기반이므로 JS가 필요합니다. JS가 필요하지 않더라도, 내가 제안한 표는 점진적 향상을 지원합니다. jstl을 사용하여 테이블을 출력하고 클라이언트가 JS를 지원할 경우이를 정렬 가능하고 필터링 가능하도록 향상시킬 수 있습니다. –

1

JSTL, 당신은 가능한 한 피해야한다

자바 스크립트, 표준, 선호하는 방법입니다

난 당신이 방법 자바 스크립트와 컬렉션

를 사용하여 데이터 테이블 렌더링하려고하는 방법을 잘 모르겠습니다 같은 스레드에서 Bozho가 시연 한 콜렉션과 함께 jstl을 사용하십시오.

+0

상품이 있어야한다고 생각합니다. – Enrique

+0

예, 오타가 있습니다. 감사. – Bozho

+0

코드 $ {obj.getItemID()}을 실행하면 "기본 네임 스페이스가 지정되지 않은 경우 함수 getItemID를 접두어와 함께 사용해야합니다"라는 메시지가 표시됩니다. 무엇을 할 수 있습니까? \ –

0

자바 스크립트는 서버에있는 Java 객체에 액세스 할 수 없습니다. 서버 코드는 JSTL forEach 태그를 사용하여 JSP로 사용할 수있는 ArrayList를 만들 수 있습니다.

ArrayLists를 "사용 가능하게"만드는 방법은 사용중인 프레임 워크에 따라 다르지만 일반 서블릿 방식은 doPost 메서드에서 속성을 설정하는 것입니다.

request.setAttribute("list1", arrayList1); 

루프 당신은 JSP 스크립틀릿과 자바 스크립트를 혼동하고

<table> 
<tr><th>Column 1</th> <th>Column 2</th> <th>Column 3</th></tr> 
<c:forEach var="row" items="${list1}"> 
    <tr><td>${row.col1data}</td> <td>${row.col2data}</td> <td>${row.col3data}</td></tr> 
</c:forEach> 
</table> 
관련 문제