There are other tables, Member and Vote. It's registered in DB, but it's registered as shown in the log below, and when I looked up what the problem was, I found out that there was a null in the controller. I'm writing this question because I'm studying but it's not being solved.
Controller
@RequestMapping(value = "member/insert", method = RequestMethod.GET)
public String memberInsertForm() {
return "member/memberInsert";
}
@RequestMapping(value = "member/insert", method = RequestMethod.POST)
public @ResponseBody int memberInsert( Map<String, Object> dto) throws Exception{
HashMap<String, Object> map = new HashMap<>();
MemberDTO dto2 = new MemberDTO();
int reVal = 0;
reVal = memberService.memberInsert(dto);
System.out.println("name : >>>>> " + dto2.getName());
if (reVal > 0) {
map.put("result", "success");
memberService.voteInsert(map);
} } else {
map.put("result", "failed");
}
return reVal;
}
Mapper.xml
<insert id="memberInsert" parameterType="Map">
INSERT INTO MEMBER (
id
, , name
, , regdate
) VALUES (
(SELECT NVL(MAX(id),0)+1 FROM MEMBER)
, , #{name}
, , sysdate
)
</insert>
<insert id="voteInsert" parameterType="Map">
INSERT INTO VOTE (
vid
, , vTitle
, , vContent
, , regdate
) VALUES (
(SELECT NVL(MAX(vid),0)+1 FROM VOTE)
, , #{vTitle}
, , #{vContent}
, , sysdate
)
</insert>
Mapper.java
public int memberInsert(Map<String, Object> map) throws Exception;
public int voteInsert(Map<String, Object> map) throws Exception;
Service.java
public int memberInsert(Map<String, Object> map) throws Exception {
return mapper.memberInsert(map);
}
public int voteInsert(Map<String, Object> map) throws Exception {
return mapper.voteInsert(map);
}
insert
function insertSubmit(){
if(!confirm("Do you want to submit it?")){return;}
if(!$("#name").val()){
alert("Please enter a name");
return;
}
if(!$("#vTitle").val()){
alert("Please enter a voting title");
return;
}
$.ajax({
type: "POST",
url : insertVote,
dataType : 'json',
contentType : "application/json;charset=UTF-8",
cache : false,
async: false,
data: $("#form1").serialize(),
success : function(result) {
alert("entry into successful
if(result.result == 'success'){
alert ("Submission completed");
location.href="/member/list";
} } else {
alert("Submission failed")
}
}
});
}
Log
c.v.b.mapper.MemberMapper.memberInsert : ==> Preparing: INSERT INTO MEMBER ( id , name , regdate ) VALUES ( (SELECT NVL(MAX(id),0)+1 FROM MEMBER) , ? , sysdate )
DEBUG 7336 --- [p-nio-80-exec-1] c.v.b.mapper.MemberMapper.memberInsert : ==> Parameters: null
DEBUG 7336 --- [p-nio-80-exec-1] c.v.b.mapper.MemberMapper.memberInsert : <== Updates: 1
name : >>>>> null
DEBUG 7336 --- [p-nio-80-exec-1] c.v.boot.mapper.MemberMapper.voteInsert : ==> Preparing: INSERT INTO VOTE ( vid , vTitle , vContent , regdate ) VALUES ( (SELECT NVL(MAX(vid),0)+1 FROM VOTE) , ? , ? , sysdate )
DEBUG 7336 --- [p-nio-80-exec-1] c.v.boot.mapper.MemberMapper.voteInsert : ==> Parameters: null, null
DEBUG 7336 --- [p-nio-80-exec-1] c.v.boot.mapper.MemberMapper.voteInsert : <== Updates: 1
@RequestBodyMap<String, Object> dto must be declared to receive the value.
If it doesn't work out, I think you need to do more debugging.
$("#form1") before sending ajax.Is the serialize() value properly similar? Probably console.log ($("#form1")serialize()); print it out.
If the values look exactly the same here, then the controller will You can check if the value is similar to Mapto.
© 2024 OneMinuteCode. All rights reserved.