728x90
해결
@Controller쓴 클래스 중 해당 url메서드를
@RestController로 따로 빼줌.
오류 메세지
오류 관련 코드
let index = {
init: function () {
$("#btn-save").on("click", () => {
//()=>{} this를 바인딩하기 위해서!
this.save();
});
$("#btn-update").on("click", () => {
//()=>{} this를 바인딩하기 위해서!
this.update();
});
// $("#btn-login").on("click", () => {
// //()=>{} this를 바인딩하기 위해서!
// this.login();
// });
},
save: function () {
//alert("user의 save함수 호출됨");
let data = {
//id값으로 찾아서 값 가져옴
userId: $("#userId").val(),
userName: $("#userName").val(),
password: $("#password").val(),
role: $("#role").val(),
};
//console.log(data);
// ajax호출시 default가 비동기 호출
// ajax 통신을 이용해서 3개의 데이터를 json으로 변경하여 insert요청!
// ajax가 통신을 성공하고 서버가 json을 리턴해주면 자동으로 자바 오브젝트로 변환해주네요.
$.ajax({
//회원가입 수행 요청
type: "POST",
url: "/joinForm",
data: JSON.stringify(data), //http body 데이터
contentType: "application/json; charset=utf-8", //body데이터가 어떤 타입인지(MIME)
dataType: "json", // 요청을 서버로 해서 응답이 왔을 때 기본적으로 모든 것이 문자열(생긴게 json이라면)=> javascript 오브젝트로 변경
})
.done(function (resp) {
alert("회원가입이 완료되었습니다.");
console.log("성공 resp:", resp);
location.href = "/";
})
.fail(function (error) {
console.log("실패 data:", data); //console.log("실패 data:"+ data); 라고 쓰면 원하는대로 출력되지 않았었음.
alert(JSON.stringify(error.responseText));
}); //ajax 통신을 이용해서 3개의 데이터를 json으로 변경히여 insert 요청!!
},
update: function () {
let data = {
id: $("#id").val(),
username: $("#password").val(),
password: $("#password").val(),
email: $("#email").val(),
};
$.ajax({
type: "PUT",
url: "/user",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
})
.done(function (resp) {
alert("회원수정이 완료되었습니다.");
location.href = "/";
})
.fail(function (error) {
alert(JSON.stringify(error));
});
},
// login: function () {
// //alert("user의 save함수 호출됨");
// let data = {
// //id값으로 찾아서 값 가져옴
// username: $("#username").val(),
// password: $("#password").val(),
// email: $("#email").val(),
// };
// //console.log(data);
// // ajax호출시 default가 비동기 호출
// // ajax 통신을 이용해서 3개의 데이터를 json으로 변경하여 insert요청!
// // ajax가 통신을 성공하고 서버가 json을 리턴해주면 자동으로 자바 오브젝트로 변환해주네요.
// $.ajax({
// //회원가입 수행 요청
// type: "POST",
// url: "/api/user/login",
// data: JSON.stringify(data),
// contentType: "application/json; charset=utf-8", //body데이터가 어떤 타입인지(MIME)
// dataType: "json", // 요청을 서버로 해서 응답이 왔을 때 기본적으로 모든 것이 문자열(생긴게 json이라면)=> javascript 오브젝트로 변경
// })
// .done(function (resp) {
// alert("로그인이 완료되었습니다.");
// location.href = "/";
// })
// .fail(function (error) {
// alert(JSON.stringify(error));
// }); //ajax 통신을 이용해서 3개의 데이터를 json으로 변경히여 insert 요청!!
// },
};
index.init();
여기서 .done 시
/joinForm
url로 data보냄
그런데 받는 controller에서
package com.MyBlog.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.MyBlog.Dto.ResponseDto;
import com.MyBlog.Dto.UserDto;
import com.MyBlog.Service.HeaderService;
@Controller
public class HeaderController {
@Autowired
public HeaderService headerService;
@GetMapping("/")
public String index() {
return "root.mid_contentList";
}
@GetMapping("/joinForm")
public String GetjoinForm() {
return "root.mid_joinForm";
}
@PostMapping("/joinForm")
public ResponseDto<Integer> join(@RequestBody UserDto user) {
System.out.println("controller User:"+user);
System.out.println("ResponseDto<Integer>(HttpStatus.OK.value(), 1):"+new ResponseDto<Integer>(HttpStatus.OK.value(), 1));
headerService.join(user);
return new ResponseDto<Integer>(HttpStatus.OK.value(), 1);
}
}
@Controller써놓고서는
@PostMapping("/joinForm")
public ResponseDto<Integer> join(@RequestBody UserDto user) {
System.out.println("controller User:"+user);
System.out.println("ResponseDto<Integer>(HttpStatus.OK.value(), 1):"+new ResponseDto<Integer>(HttpStatus.OK.value(), 1));
headerService.join(user);
return new ResponseDto<Integer>(HttpStatus.OK.value(), 1);
}
여기 return에 view주소 대신 엉뚱한걸 넣어줘서 오류가 계속 났던거다.
오류 해결 코드
package com.MyBlog.Controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.MyBlog.Dto.ResponseDto;
import com.MyBlog.Dto.UserDto;
import com.MyBlog.Service.HeaderService;
@Controller
public class HeaderController {
@Autowired
public HeaderService headerService;
@GetMapping("/")
public String index() {
return "root.mid_contentList";
}
@GetMapping("/joinForm")
public String GetjoinForm() {
return "root.mid_joinForm";
}
}
package com.MyBlog.Controller.api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.MyBlog.Dto.ResponseDto;
import com.MyBlog.Dto.UserDto;
import com.MyBlog.Service.HeaderService;
//@RestController
public class HeaderApiController {
@Autowired
private HeaderService headerService;
@PostMapping("/joinForm")
public ResponseDto<Integer> join(@RequestBody UserDto user) {
System.out.println("controller User:"+user);
System.out.println("ResponseDto<Integer>(HttpStatus.OK.value(), 1):"+new ResponseDto<Integer>(HttpStatus.OK.value(), 1));
headerService.join(user);
return new ResponseDto<Integer>(HttpStatus.OK.value(), 1);
}
}
728x90
댓글