작성
·
271
0
뷰 <form => PostMapping 컨트롤러 VO(int 형) 받기 문의 드립니다
안녕하세요 강사님
프로젝트 도중에 막히는 부분이 있어 질문드립니다
보안 지적사항이 나와서
기존 소스 호출 get 방식으로 호출 하는 부분을
모두 post 방식으로 변경 하라고 해서
작업중입니다
뷰 => 컨트롤러 => 서비스 => dao or repository
뷰 화면단에서 <form 에 있는 항목을 컨트롤러로
PostMapping 으로 넘겨 vo 로 받고 싶은데
바인딩예외가 발생합니다. vo 클래스에는 현재 int 형으로
선언이 되어 있는데 get으로 넘길때는 에러가 없었으나
post 로 변경해서 컨트롤러로 넘어가지 않습니다
제가 뷰화면단에서 <form 안에
input 타입을 "text" or "number"
형으로 변경 해가면서 테스트 해봐도 마찬가지네요 혹시
해결 방법이 있을까요?
<<■■■■ 뷰 화면 단 >>
<form
<input type="text" => post 넘기면 에러 발생
<input type="number" => post 넘기면 에러 발생
<<■■■■ 컨트롤러 단 >>
@PostMapping('~.do')
public getSomeMethod(SomeVoClass param){
//■■메서드파라미터 SomeVoClass 안에 int 형 sn 항목 있습니다
<<■■■■ vo 클래스 >>
pubiic class SomeVoClass{
private int sn;//■■게시판일련번호 int 형으로 선언됨
}
<<■■■■ 자바에러메세지 >>
org.springframework.validation.BindException:
org.springframework.validation.BeanPropertyBindingResult
typeMissmatch.SomeVoClass.sn
typeMissmatch.sn
typeMissMatch.int.typeMismatch
default message[Failed to convert property value of type 'java.lang.String[]'
nested exception is java.lang.NumberFormatException: for input string ",1234"]
혹시 시간 나실 때 알려주시면 감사하겠습니다
수고하세요..
김동희 드림
답변 1
0
SomeVoClass에 기본생성자도 있고
int sn이있고 setter가 만들어져 있다면
<form> 안에
<input type="text" name="sn" value="값"/>
이렇게 되어있으면 SomeVoClass에서 받을건데요? 변수이름이 같아야되고(sn)
value값이 숫자형태의 값이면 되구요
에러를 보니 배열형태의 값인듯한데요
안녕하세요
컨트롤러 받는 vo에 클래스에 int 형 문제가 아니라
사용자 화면단 폼 post 전송시 input 동일 변수가
이중으로 들어가
배열형태로 넘어가서 문제
였네요
감사합니다 수고하세요!!
강사님 답변감사드려요
다시 한번 확인해보겠습니다
수고하세요!!