제리뿅
34
2021-04-08 22:20:12 작성 2021-04-08 22:22:29 수정됨
3
204

스프링에서 ajax로 댓글 구현할 때 질문있습니다...



<form method="get" action="/home/replyInsert">
	<input type="text" name="content" id="content" placeholder="댓글을 입력해주세요"/>
	<input type="button" id="send" value="등록"/>
</form>

id가 content인 텍스트필드에 내용을 적고 등록 버튼을 누르면

$("#send").click(function(){
	var param="no="+${vo.no}+"&content="+$("#content").val();
	var url="/home/replyInsert";
	$.ajax({
		url:url,
		data:param,
		success:function(result){
			var tag="<li>"+result.userid+"</li>"
			tag+="<li>"+result.content+"</li>";
			tag+="<li>"+result.writedate+"</li>";
					
			$("#reply>ul").append(tag);			
		},error:function(request,status,error){
		        console.log("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
	       }
	});
});


@RequestMapping("/replyInsert")
@ResponseBody
public ReplyVO ReplyInsert(ReplyVO vo, HttpServletRequest req) {
	vo.setIp(req.getRemoteAddr());
	vo.setUserid((String)req.getSession().getAttribute("logId"));
	
	ReplyDAO dao=new ReplyDAO();
	
	if(dao.replyInsert(vo)<0) {
		vo.setNo(0);
	}
	
	return vo;
}


// 댓글 등록
public int replyInsert(ReplyVO vo) {
	int result=0;
	try {
		getConn();
		
		sql="insert into reply(no, r_no, userid, content, writedate, ip) "
				+ "values(?, replysq.nextval, ?, ?, sysdate, ?)";
		
		pstmt=conn.prepareStatement(sql);
		pstmt.setInt(1, vo.getNo());
		pstmt.setString(2, vo.getUserid());
		pstmt.setString(3, vo.getContent());
		pstmt.setString(4, vo.getIp());
		
		result=pstmt.executeUpdate();
		
	}catch(Exception e) {
		System.out.println("댓글 등록 에러 발생");
		e.printStackTrace();
	}finally {
		setClose();
	}
	return result;
}

해당 글의 글 번호와 댓글 내용을 데이터로 넘기고

댓글 테이블에 레코드를 insert해서 컨트롤러에서 vo를 반환시키고 

리턴된 vo를 view 단의 댓글 내용들이 들어있는 #reply>ul의 하위 태그에 append해주고 싶은데

오류 코드가


org.springframework.http.converter.HttpMessageNotWritableException: No converter found for return value of type: class com.sample.home.board.ReplyVO

이렇게 뜨는데 검색을 해봐도 어떤 오류인지 잘 모르겠습니다.

db에 데이터는 잘 들어가며 새로고침을 하면 insert한 댓글이 보입니다.

get 방식으로 보내고 컨트롤러에서 get 방식으로 받아서 오류가 뜨는건가 싶어서 여러번 코드를 확인해도 method는 잘 되어있고 vo를 잘못 반환한다는 말인가 하고 ajax로 vo를 리턴받는 예시를 따라해도 에러 코드가 안 없어지더라구요

물론 기존 댓글들 밑에 append로 insert한 댓글이 누적되지 않습니다..

0
  • 답변 3

  • agangel3399
    6
    2021-04-08 22:34:03

    https://www.leafcats.com/234

    위사이트 처럼 객체를  json변환안해줘서 나는  에러인거같네요

  • Xasquatch
    218
    2021-04-08 22:39:02
    @RequestMapping("/replyInsert") 이거 혹시
    @GetMapping("/replyInsert") 아닌가여
  • Xasquatch
    218
    2021-04-08 22:40:46 작성 2021-04-08 22:41:16 수정됨

    리퀘스트매핑은 메서드 디폴트값이 없다고 하는거 같네요

    메서드타입지정해보고 시도해보시는 것도 조심스레 권유드립니다..

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