금융에 대한 모든 것

HttpServletRequest

 HttpServletRequest를 통해 컨트롤러로 전달된 파라미터를 받을 있습니다. 파라미터를 받는 메서드는 가지의 메서드가 있습니다.

 

getParameter

@Controller
public class MvcController {
        
    @RequestMapping("/mvc.do")
    public String mvcInit(HttpServletRequest req) {
        // key값을 인자로 받아 value값을 반환
            String value = req.getParameter("name");
        
            return null;
    }
}

getParameter는 key-value 형태로 전달된 하나의 파라미터를 받는 메서드입니다. key 값을 인자로 전달하면 value 값을 반환합니다.

 

getParameterValues

@Controller
public class MvcController {
        
    @RequestMapping("/mvc.do")
    public String mvcInit(HttpServletRequest req) {
        // key와 연결된 모든 value 값을 배열로 반환
            String[] value = req.getParameter("name");
        
            return null;
    }
}

getParamterValues는 getParameter 다르게 하나의 key 연결된 모든 value 값을 반환하여 배열의 형태로 반환합니다.

 

getParameterNames

@Controller
public class MvcController {
        
    @RequestMapping("/mvc.do")
    public String mvcInit(HttpServletRequest req) {
        // 모든 key 값들을 반환함
            Enumeration<String> names = req.getParameter();
        // 다음 값이 있다면 실행
        while(names.hasMoreElements()) {
            // 다음 값으로 넘어감
            String name = names.nextElement();
            System.out.println(name);
        }
        
            return null;
    }
}

getParameterNames는 전달된 모든 key 값들을 Enumeration이라는 배열과 비슷한 형태로 반환합니다. 배열과 같이 순회를 하기 위해서는 hasMoreElements 메서드로 다음 값이 존재하는지 확인을 해주고 nextElement 메서드로 다음 값으로 접근하여 순회합니다.

 

@RequestParam

RequestParam은 전달된 파라미터를 쉽게 받을 있게 하는 어노테이션입니다.

 

예시

@Controller
public class MvcController {
        
    @RequestMapping("/mvc.do")
    public String mvcInit(@RequestParam String str, @RequestParam HashMap<String, Object> map) {
            ...
        return null;
    }
}

@RequestParam은 변수 value 값을 담을 변수에 붙여주면 되는데, 이때 변수명은 value값과 매칭이 되는 key명이어야 합니다. 또한, map 형태의 변수에 붙여주면 모든 key-value 값을 받을  있습니다.

 

value, required, defaultValue 속성

@RequestParam(value = "change", required = "true", defaultValue = "none")

 value 속성으로  이름을 지정할  있습니다. required 속성은 파라미터의 필수 여부를 지정합니다. 해당 속성 값이 true 이면  파라미터가 전달되어야 하고 만약 전달되지 않으면 오류를 일으킵니다.  defaultValue 속성은 파라미터가 전달되지 않았을  사용할 문자열 지정할  있습니다.

 

@ModelAttribute

ModelAttribute는 객체에 붙이는 어노테이션으로써 객체의 필드에 value값을 매칭해 파라미터 값을 저장할 있습니다.

 

예시

@Controller
public class MvcController {
        
    @RequestMapping("/mvc.do")
    public String mvcInit(@ModelAttribute BoardVO boardVO) {
            
        boardVO.getNumber(); // number값 반환
            return null;
    }
}

@ModelAttribute가 붙은 BoardVO 객체에 number라는 필드가 있으면 key=number, value=1이라는 파라미터를 받아 value 1 값을 저장합니다. 이때 BoardVO 객체에는  필드에 대한 getter, setter 존재해야 합니다.

 

 

 

반응형