스프링글스
75
2019-12-28 22:37:19 작성 2019-12-28 23:03:17 수정됨
5
556

(jstl) foreach문 안에서 if 문으로 분류한 목록을 새로운 카운터로 만들려면?


데이터베이스에서 List<Board>로 가지고온 게시글 리스트항목을

모델로 내려준 후

<c:forEach items="${boardVO}"  var="board" varStatus="status" >
  <c:if test="${board.boardType eq 'M' }">
	<li>
	  <a href="#">
		<span class="pull-right" style="color:sienna" >
		  <i class="far fa-comments"></i>
		  <span id="commentcnt">
			+7
		  </span>
		</span>
          <c:out value="${board.boardTitle}" />
          </a>	
	</li>
  </c:if>
</c:forEach>

if문으로 게시글 타입을 ex) M , B , 등등으로 분류해 주었습니다. 

여기서  메인화면에 li 항목을 5개만 보여주고 싶은데 이게 리스트에 한꺼번에 담겨서 

if문으로만 분류하다보니 목록 순서가 엉망입니다.   "M" 타입의 게시글의 번호가 2, 5, 7, 8 이런식으로 나오는데  다시한번 li를  if문으로 <c:if test="status.count ge 5"> 조건등을 해보려고 시도해 보았지만 

아무 내용도 나오지 않고 있습니다. 


1. if문으로 분류한 M타입의 게시글만 따로 새로운count를 주는 방법이 있을까요?

or

2. 그냥 까불지말고 sql 하나 다시 작성해서 모델로 내려줘라 ..



0
0
  • 답변 5

  • Java .
    1k
    2019-12-28 22:45:30

    리스트를 li태그안에 5개씩 짤라서 넣고싶으면

    c:if status.count == 5  하시면될거같은데영


    0
  • 스프링글스
    75
    2019-12-28 22:55:47 작성 2019-12-28 23:11:02 수정됨


    @java개발자입니다

    제가 질문을 어렵게 한것같습니다. li항목에 리스트 5개를 넣는 것이아니라  li 태그 차체를 5개까지만 보이게 하려고 하는 것입니다. 


    0
  • NULL만나면
    2k
    2019-12-29 10:44:28 작성 2019-12-29 10:46:38 수정됨
    sql에서 특정 타입만 카운팅 가능한데 그룹함수, 분석함수를 좀 아실까요?
    0
  • 스프링글스
    75
    2019-12-29 14:26:11

    @NULL만나면 


    예를들어  SELECT 

                                BNO,

                                CONTENT,

                                 .....

                     FROM 

                                board

                     WHERE

                                boardType = 'M'


    분석함수나 그룹 함수를 쓴건 아니지만 간단하게 위에 방식대로 가져다가 화면에 뿌려주는 방식으로 몇개 작업을 한적은 있습니다. 근데 단순히 화면에 뿌려주는 방식인데 모든 게시판 타입마다 sql을 위에 방식대로 작성하면 부적절하다는 생각에 jstl로 해결할 수 있나 싶어서 질문드려보았습니다. 제가 개발하려는 것이 모든 게시판타입마다 5개의 목록으로 메인화면에 보여주려는 상황입니다.  모든 게시글을 한테이블에 넣고 타입으로만 분류를 해놓은 상황에서  메인화면에 뿌려준 게시글들을 타입만 가지고 구분해서 jstl로 화면에 뿌려줄수 있는지 아니면 각 게시판 타입마다 위에 sql문 처럼 작성해서 각각 모델로 내려줘야 하나 그게 궁금합니다. 더 좋은 방법이 있다면 충고 부탁드립립니다. !!!! ㅠ

              

    0
  • 박박이
    129
    2019-12-30 14:31:11
    var MList = new Array();
    var BList = new Array();
    <c:forEach items="${boardVO}"  var="board" varStatus="status" >
    <c:if test="${board.boardType eq 'M' }">
    MList.push("${board.boardTitle}");
    </c:if>
    <c:if test="${board.boardType eq 'B' }">
    BList.push("${board.boardTitle}");
    </c:if>
    </c:forEach>


    이런식으로 Javascript 배열에 넣고 출력해주는건 어떨지요
    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.