[Spring / 스프링] @RequestMapping의 유연한 형변환

@RequestMapping을 선언한 메서드는 <form>으로 받은 파라미터 값을 원하는 타입으로 선언해서 사용할 수 있다. 파라미터가 기본 타입과 래퍼 클래스라면 알아서 캐스팅(Casting) 해주기 때문이다. 단 문제가 발생하는 경우가 있는데, 캐스팅이 불가능한 경우다. 예를 들어 파라미터로 "abc"라는 값을 받았는데 long 타입으로 선언하면 에러가 발생하고 상태코드 400을 반환한다.

Ex)

jsp(view)

<form action="raiseEmpSal" method="post">
<select>
    <select name="empno">
    <option value="1000">사원번호</option>
</select>
    연봉 인상률 : <input name="increseRate">
                <input type="submit" value="전송">
</form>

Controller

@RequestMapping("/raiseEmpSal")
    public String updateSal(long empno, double increseRate) {
        // String 타입인 empno와 increseRate을 long과 double 타입으로 캐스팅해서 선언
        emp.updateSal(empno, incre); 
        return "redirect:/index.jsp";
    }
반응형

댓글

Designed by JB FACTORY