drrg
224
2019-08-30 09:24:05
9
463

Jsp에서 컨트롤러를거쳐 다른Jsp로 리스트넘겨주는법


안녕하세요. 갓 취업한 초보개발자입니다.

일단 지금 제가 작업한부분은 
컨트롤러에서 list.Jsp에 리스트를 뿌려주고
리스트가 나온 화면에 엑셀 버튼을  만들어서
그 버튼을 누르면 Excel.jsp로 이동해 리스트가 그대로 엑셀에 나옵니다.
엑셀 버튼은 관리자일때만 보입니다.
그래서 리스트를 조회할때 컨트롤러에서 관리자면 세션객체에 리스트를 담아주는 조건문을 넣었습니다
이렇게해서 Excel.jsp에서도 세션의 리스트값을 그대로받아올수있었고요.

근데 나중에 일반사용자들도 엑셀로 뽑을수있게해달라면 세션이라 서버에 무리가갈것같습니다.
그래서 다른방안도 강구하고싶은데 
List.jsp에 있는 조회리스트를 
Controller로 보내고 그 리스트들을
다시 Excel.jsp로 보내는 방법이있을까요?
0
0
  • 답변 9

  • NoProblem
    46
    2019-08-30 09:36:24
    동일한 컨트롤러를 쓰고 view단을 list또는 excel로 분기 시키는 방법이 낫지 않을까 생각합니다.동일한 컨트롤러를 쓰면 검색조건 같은 것들도 동일하게 넘어갈테니 조회 데이터는 동일하게 나오겠죠
    0
  • drrg
    224
    2019-08-30 09:54:43

    그렇게 하는 경우도 생각해봤는데
    사용자가 이미 나온 리스트에서 Select Box에 있는 조건 옵션을 몇개 바꾸고
    "아참 딴 거 검색하기전에 이 화면 먼저 엑셀로 봐야겠다"이러고 엑셀버튼을 누르면 조건 옵션이 바뀐 것에 대한 리스트가 뜨기 때문에 이미 나온 리스트 화면을 기준으로 해야할 것 같습니다.

    0
  • NoProblem
    46
    2019-08-30 11:03:16
    list.jsp에 addObject로 담아온 데이터를 뿌리셨을텐데, 그 데이터를 그대로 다시 넘기는 건 어떨까요?
    0
  • drrg
    224
    2019-08-30 11:12:54

    그걸 c:foreach를 쓰고 form 태그로 감싸서 hidden으로 값을 다시 넘겨주는 방식말고

    리스트 그자체를 한번에 넘기는 방식이 있나요?

    0
  • NoProblem
    46
    2019-08-30 11:26:04

    forEach에서 items 데이터가 있지 않나요? 

    $.ajax({
        type : 'post',
        url : 'excel.do',
        data : forEach에서 쓰셨던 items데이터,
        success : function() {
            ...
        }
    });

    이런식으로 보내고 excel 관련 컨트롤러 추가하셔서 데이터 받을 수 있게 처리하면 되지 않을까요?

    0
  • drrg
    224
    2019-08-30 13:13:30


    자바스크립트에서 리스트를 console.log("${list}")


    console.log(<%=request.getAttribute("list")%>); 


    이런식으로 담아봤는데 오류가 뜨더라고여 ㅠㅠ


    리스트안에 "" '' ' 이런 쌍따옴표랑 엔터들이 많아서 '종결되지않은 식입니다' 이런식으로 에러가 뜨네요..


    JSON.stringfy를 써도 에러 형식은 똑같네요..


    0
  • NoProblem
    46
    2019-08-30 14:36:23

    list.jsp

    <input type="hidden" name="listData" id="listData" value="${list}">

    해당 데이터를 input hidden으로 담아놓고 $('#listData').val()로 읽어와서 파싱하면 되더라구요.

    한번 시도해보세요~

    1
  • minarai
    2k
    2019-08-30 15:53:08


    방법 1 = 직전 조건 옵션만 세션을 만들고 거기에 담아서 다시 서버 호출
             엑셀 버튼만 반응하도록 조건 분기 필요


    방법 2 = 파일로 빼놓는다


    방법 3 = hidden사용


    0
  • 0
  • 로그인을 하시면 답변을 등록할 수 있습니다.