후다다닥
371
2017-05-30 17:00:59
2
4610

ajax 에서 vo객체 받아오기.


안녕하세요 jsp/servlet으로 게시판 구현 중에 있는데


ajax로 페이징 처리를 할려고 합니다.


제가 지금 vo 객체와 dao 를 활용하여 db 에서 게시판 리스트를 뽑아와 vo 객체를 request 어트리뷰트로


받아와서 jsp파일에 표출해주는 전형적인 mvc2패턴으로 구현된 상태인데요. 테이블의 요소에는 jstl로 객체 


의 값을 표현 해주고 있습니다. 이를 이제 ajax를 사용하여 리스트를 만들어 줄려고 하는데요


그러기 위해선 자바 클래스의 vo 객체를 jsp로 옮겨온다음에 vo객체의 값을 ajax로 뿌려줘야하는데


그 vo객체를 ajax로 어떻게 받을 수 있나요? json형태로 받아올려고하는데 중간과정에서 json으로 변환


시켜야 하나요?  


자바클래스 입니다.

public class BoardListAction implements Action{


@Override

public void execute(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

// TODO Auto-generated method stub

String url="/board/boardList.jsp";

BoardMybatisDAO bDao = new BoardMybatisDAO();

List<BoardVO> boardList=bDao.selectAllBoards();

request.setAttribute("boardList", boardList);

RequestDispatcher dis = request.getRequestDispatcher(url);

dis.forward(request, response);

}

}



jsp파일입니다.


<%@ page language="java" contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

<link rel="stylesheet" type="text/css" href="css/shopping.css">

<script src="../script/jquery-3.2.0.min.js"></script>

<script type="text/javascript">

$.ajax({


url: '',

dataType:'json',

success:function(data){

}

})

</script>

</head>

<body>

<div id ="wrap" align="center">

<h1>게시글 리스트</h1>

<table class="list">

<tr>

<td colspan="5" style="border: white; text-align: right">

<a href="BoardServlet?command=board_write_form">게시글 등록</a>

</td>

</tr>

<tr><th>번호</th><th>제목</th><th>작성자</th><th>작성일</th><th>조회</th></tr>

<c:forEach var="board" items="${boardList}">

<tr class="record">

<td>${board.num }</td>

<td>

<a href="BoardServlet?command=board_view&num=${board.num }">${board.title }</a>

</td>

<td>${board.name }</td>

<td><fmt:formatDate value="${board.writedate }"/></td>

<td>${board.readcount }</td>

</tr>

</c:forEach>

</table>

</div>

</body>

</html>



0
  • 답변 2

  • Racon
    2017-05-30 17:19:49 작성 2017-05-30 17:20:22 수정됨


    저는 return type을 ArrayList<VO> 로 했습니다.


    public ArrayList<넘길 VO>(){

      ArrayList<넘길 VO> list = dao.쿼리문;

      return list;

    }

    로하면

    success:function(data){ 여기서 data 가 list로 되더 라구요 

    paging  처리 까지 하실려면 


    아예 list class를 만들어서  변수에 

    ArrayList<VO> list

    나머지 페이징할 변수들...


    해서 

    public ArrayList<넘길 VO>(){

     list list.list = dao.쿼리문;

      return list;

    }

    이런식으로 하면 될거같습니다. 


    저는 이런식으로 하고있어요


    설명을  잘 못하겠네요 ㅋㅋㅋㅋㅋㅋㅋ

  • Hyunjins
    371
    2017-05-31 11:01:46

    현 프레임웍 안에서는

    Action컨트롤러에서 리스트를 JSON String으로 컨버팅 한 다음 setAttribute 해야 할 사항 같습니다.

    Jackson library의 ObjectMapper를 사용하면 간단하게 한 줄로 변경 가능 합니다.

    이것저것 덕지덕지 붙는게 불편하다면 컨버팅 클래스 하나 만드셔도 될 듯 하구요.

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