시스템아 미안해
ajax form 400에러 본문
html에서 form으로 감싸진 name중 VO에서 선언한 int형 필드가 있을때 생긴 에러.
insert와 update를 같은 뷰에서 했는데 update뷰엔 idx가 존재하지만, insert뷰엔 idx가 null이었다.
int형 vo필드를 name으로 controller에 인자로 넘겼는데 이 값이 null이면 400에러가 떴다.
해결방안)
1. vo변수를 String형으로 바꾼 다음 DB로 넘기기 직전에 int로 변환한다.
2.vo변수를 Integer형으로 바꾼다
3. 해당 name을 삭제하고 id를 줘서 submit 전 formData객체를 생성한 후 조건문을 돌린다.
if($("#intIdx").val() != ""){
formData.append("intIdx",$("#intIdx").val());
}else{
formData.append("intIdx",0);
}
무조건 controller에 int value를 넘기기 위함이고,
이렇게 할 경우 백에서 intIdx를 체크한 후 insert, update를 해야한다.
4. 많은 값을 name으로 넘기지 않을 경우, controller에서 인자를 VO로 받지 않고 각각의 변수로 따로 받되
@requestparam(value="idx", required=false)int idx 로 설정한다.
'error diary' 카테고리의 다른 글
톰캣 메모리 누수(org.apache.catalina.loader.WebappClassLoaderBase checkThreadLocalMapForLeaks) (0) | 2023.01.13 |
---|---|
데이터 형식 varchar 및 varbinary이(가) add 연산자에서 호환되지 않습니다. (5) | 2022.12.21 |
javax.el.ELException: Failed to parse the expression [${ }] (0) | 2022.12.13 |
이클립스 저장 전 코드 에러가 계속 뜰때 (0) | 2022.12.02 |
mariaDB decimal에 빈 값 넣기(jsp,java,mybatis,mariaDB) (0) | 2022.12.01 |