샌애긔
124
2020-08-18 16:22:37
8
736

선배님들 Ajax 오류에 관해서 질문하나 드립니다..!!


대체 뭐가 문제인지 모르겠어서..열심히 찾아보고 찾아봤는데도 도무지해결이 안되어서 결국 질문을 이렇게 드리게 되었습니다...

-view-

<script type="text/javascript">
function idcked() {
	alert("아이디를 체크합니다.");
	$.ajax({
		async : false,
		type : "POST",
		url : "idCheck.do",
		data : {
            "userId":$('#userId').val() },
		success : function(count) {
			alert(count);
			if(count > 0){
				alert("사용할 수 없는 아이디입니다.");
				
			}else{
				alert("사용가능한 아이디입니다.");

			}
		}
	});
}
</script>

<body>
<form class="form-horizontal" id="sendForm" action="./signUp.do">
		<input type="hidden" id="userSeq" name="userSeq" value="">
	    <div class="form-group">
	      <label class="col-sm-2 control-label">ID</label>
	      <div class="col-sm-4">
	        <input class="form-control" id="userId" name="userId" type="text" value="" title="ID">
	      	<input type="button" id="idck" onclick="idcked()" value="ID 중복 체크">
	      </div>
	    </div>

</body

-Controller

@RequestMapping(value = "user/idCheck.do", method = RequestMethod.POST)
	@ResponseBody
    public int idCheck(@RequestBody String userId,UserVO vo) {
        System.out.println("id 출력확인점1~~~" + userId);
        int count=0;
        count = userService.idCheck(vo);
        System.out.println("id 출력확인점2~~~" + count);    
 
        return count;
    }
	

-Service

@Service
public class UserService {

	@Autowired
	private SqlSessionTemplate sqlSessionTemplate;
	
	public int idCheck(UserVO vo){
		System.out.println("싸비스의 맴아이디 ~~~~~"+vo.toString());
		int count=sqlSessionTemplate.selectOne("User.idcked", vo);
		System.out.println("싸비스의 받아온 까운또~~~~"+count);
		return count;
	}
}

-Mapper

<mapper namespace="User">
	
	<select id="idcked" resultType="int">
		select count(*) from USER_TB
		where USERID = #{userId}
	</select>

</mapper>

요런 식으로 작성을 하였습니다.

이 과정에서 오류가 발생하는 부분은 아마 컨트롤러에서 뷰로 값을 넘길때인 것 같습니다.

2020-08-18 16:05:31.862 DEBUG org.springframework.web.servlet.handler.SimpleMappingExceptionResolver - Resolving exception from handler [public int com.bil.user.controller.UserController.idCheck(java.lang.String,com.bil.user.vo.UserVO)]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
2020-08-18 16:05:31.862 DEBUG org.springframework.web.servlet.handler.SimpleMappingExceptionResolver - Resolving to default view 'cmmn/egovError' for exception of type [org.springframework.web.HttpMediaTypeNotAcceptableException]
2020-08-18 16:05:31.862 DEBUG org.springframework.web.servlet.handler.SimpleMappingExceptionResolver - Exposing Exception as model attribute 'exception'
2020-08-18 16:05:31.862 DEBUG org.springframework.web.servlet.DispatcherServlet - Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'cmmn/egovError'; model is {exception=org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation}


에러는 다음과같이 발생합니다....만 해당 Could not find acceptable representation

이라는 오류를 해결하는 방법을 모르겠어서 한번 여쭈어 보고자합니다.

도움의 손길을 부탁드리겠습니다 ㅠㅠ

0
  • 답변 8

  • 시닙이
    1k
    2020-08-18 16:28:08 작성 2020-08-18 16:28:40 수정됨

    1. Controller 에 데이터는 제대로 나오는지 확인 .

    2. Service 에 데이터 제대로 들어오는지 확인.

    3. 쿼리가 제대로 날아갔는지 확인

    4. 날아갔다면 count는 내가 원하는 값과 일치하는지 확인 . 

    5. Controller return하기전 count 값 확인.

    6. 스크립트 개발자도구에서 에러 확인 . ( alert 는 찍히는지 )


    이 순서 한번 확인해보세요 

    디버그 걸고 브레이크포인트로 확인해보세요 

  • 샌애긔
    124
    2020-08-18 16:46:29 작성 2020-08-18 16:47:38 수정됨

    네 ㅠㅠ 정확하게 5번까지는 정상적으로 작동이됩니다..5번에 리턴이 문제인것 같긴한데

    해당문제를 어떻게 해결해야할까...하는 것 입니다 ㅠㅠ

    id 출력확인점1~~~userId=1313
    싸비스의 맴아이디 ~~~~~UserVO [userSeq=null, userId=1313, pwd=null, userName=null, regDt=null]
    2020-08-18 16:44:18.568 DEBUG org.mybatis.spring.SqlSessionUtils - Creating a new SqlSession
    2020-08-18 16:44:18.583 DEBUG org.mybatis.spring.SqlSessionUtils - SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b8884ef] was not registered for synchronization because synchronization is not active
    2020-08-18 16:44:18.603 DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Fetching JDBC Connection from DataSource
    2020-08-18 16:44:18.894 DEBUG org.mybatis.spring.transaction.SpringManagedTransaction - JDBC Connection [jdbc:oracle:thin:@localhost:1521:xe, UserName=SPACE, Oracle JDBC driver] will not be managed by Spring
    2020-08-18 16:44:18.901 DEBUG User.idcked - ==>  Preparing: select count(*) from USER_TB where USERID = ? 
    2020-08-18 16:44:19.073 DEBUG User.idcked - ==> Parameters: 1313(String)
    2020-08-18 16:44:19.111 DEBUG User.idcked - <==      Total: 1
    2020-08-18 16:44:19.114 DEBUG org.mybatis.spring.SqlSessionUtils - Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6b8884ef]
    2020-08-18 16:44:19.114 DEBUG org.springframework.jdbc.datasource.DataSourceUtils - Returning JDBC Connection to DataSource
    싸비스의 받아온 까운또~~~~1
    id 출력확인점2~~~1
    2020-08-18 16:44:19.120 DEBUG org.springframework.web.servlet.handler.SimpleMappingExceptionResolver - Resolving exception from handler [public int com.bil.user.controller.UserController.idCheck(java.lang.String,com.bil.user.vo.UserVO)]: org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
    2020-08-18 16:44:19.120 DEBUG org.springframework.web.servlet.handler.SimpleMappingExceptionResolver - Resolving to default view 'cmmn/egovError' for exception of type [org.springframework.web.HttpMediaTypeNotAcceptableException]
    2020-08-18 16:44:19.120 DEBUG org.springframework.web.servlet.handler.SimpleMappingExceptionResolver - Exposing Exception as model attribute 'exception'
    




  • 벨제부브
    2k
    2020-08-18 16:59:12

    유저vo에 카운트담는게업어서

    보낼때 값이안들어가나봅니다

  • 샌애긔
    124
    2020-08-18 17:10:24

    vo에 count , 게더 세더를 설정해주어도 같은 오류가 뜹니다...!

    혹시 궁금해서 그런데

    리턴을 vo로 해주는것이 아니어도 vo에 카운트 값이 있어야하나요?

    int count 에 원하는 값을 담아서 리턴을 count로 했는데도요..?

  • 벨제부브
    2k
    2020-08-18 17:16:51

    샌애긔 

    보통 AJAX통신하면 JSON으로주고받고하는데

    지금컨트롤러 ->뷰 로값을못받는거면 아마 설정을다시보시거나

    컨트롤러 리턴값에 설정을한값을 return보낼때 잘태우는지봐야지요



  • spoon
    2k
    2020-08-18 17:29:20

    ajax에서 dataType 설정 해보셨나요?

    default가 int가 아니어서 그럴 수 있습니다

  • 샌애긔
    124
    2020-08-19 13:40:41

    첨부해주신 링크 토대로 해본결과 정상실행이 되었습니다!! 감사합니다!

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