2014-11-19 4 views
0

사용 this 게시물 컬렉션에 값이 하나 뿐이며 문자열 인 경우 Collection 개체가 아닌 String으로 반환됩니다. 내 문제는 내 컬렉션 Integer에서 BigDecimal에 이르기까지 아무것도 컬렉션에 반환 된 문자열 수 있습니다. JSTL 조건 아래에서 사용했다면 String 타입의 데이터 만 잡는다. 다른 유형은 어떻습니까?JSTL : 개체가 컬렉션인지 아닌지 확인하는 방법

여기서 queryResults은 객체 배열 목록을 포함합니다 : List<Object[]>. 따라서 bookmark은 객체의 배열이됩니다 : Object[]

 <c:forEach var="bookmark" items="${queryResults}" varStatus="loopStatus"> 
      <tr class="${loopStatus.index % 2 == 0 ? 'roweven' : 'rowodd'}"> 
      <c:choose> 
      <c:when test="${bookmark.getClass().simpleName == 'String'}"> 
      <!--The collection has only 1 record and that is of type String. Can't run for loop. --> 
       <td><c:out value="${bookmark}"/></td> 
      </c:when> 
      <c:otherwise> 
       <!--The collection has more than 1 record therefore running a for loop. --> 
       <c:forEach begin="0" end="${fn:length(bookmark)-1}" varStatus="loop" > 
        <td><c:out value="${bookmark[loop.count-1]}"/></td> 
       </c:forEach> 
      </c:otherwise> 
      </c:choose> 
      </tr> 
     </c:forEach> 
+0

, 나는 알게되었다 Object가 String인지 컬렉션인지 여부를 JSTL로 찾는 방법. –

+0

에서 말씀하지

<c:forEach var="bookmark" items="${queryResults}" varStatus="loopStatus"> <tr class="${loopStatus.index % 2 == 0 ? 'roweven' : 'rowodd'}"> <c:forEach var="bookmarkColumn" items="${bookmark}" > <td><c:out value="${bookmarkColumn}"/></td> </c:forEach> </tr> </c:forEach> 

+0

'queryResults' 컬렉션에는 정확히 무엇이 들어 있습니까? –

답변

0

은 당신이 원하는 방식으로 다음과 같은 작업을해야합니다 :

해당 게시물은 해당 게시물을 사용하여 모든
+0

문제가 있습니다. 북마크 컬렉션에있는 항목이 하나뿐이라면 String을 말하고 북마크 자체는 String이 아니라 Collection으로 작동합니다. 그 이유는, 위의 조건을 추가 c :를 썼습니다. Collection에 1 개의 레코드 만 있으면 다르게 처리하고, 그렇지 않으면 Collection으로 처리하고 for 루프를 실행합니다. 귀하의 솔루션에 오류가 발생합니다 : javax.servlet.ServletException : javax.servlet.jsp.JspTagException : 에 대해 > –

+0

에 제공된 "항목"을 반복하는 방법을 모르십시오. 배열 대신 문자열 –

+0

최대 절전 모드 session.createSQLQuery()를 사용하고 있습니다. 반환되는 Object 배열 대신 Object가 1 개만있는 경우 Array 요소로 채우지 않고 List의 첫 번째 요소로 Object (String 또는 Interger 등) 자체를 채우고 실제로 배열에 채 웁니다. 명부. 어쨌든, 내가 자바 DAO 코드에 대한 제어권을 가지고 있지 않기 때문에이 시나리오에서 도움을 주실 수 있습니까? JSP로만 처리해야합니다. –

관련 문제