본문 바로가기
개발자/백엔드 웹 개발자 과정(국비)

[Spring] 검색기능, @RequestMapping 메서드 리턴 타입

by 초응 2023. 3. 2.

안전한 웹 개발을 위해 컬럼명 자체를 넘기는 것 X - 행정안전부 지침.

XXXXXXXX컬럼명을 파라미터 넘기는것 안 됨 XXXXXXXXXXXXXXX

숫자로 하여 넘길 것

 

 

 

[@RequestMapping 메서드의 리턴 타입]

-ModelAndView : 뷰 정보 및 모델 정보를 담고 있는 ModelAndView 객체.

*명시적 뷰 지정방법

- 뷰 이름을 직접 지정 (반환타입 ModelAndView , String)

 

*묵시적 뷰 지정방법 

- 뷰 명시 X

- 장점 :  명령어를 고민할 필요가 없음. 뷰 입력 자체가 경로이기 때문에.

- 단점 :  경로가 길면 명령어도 길며, 중복해서 명령어를 사용할 수 없다.( 경로 하나가 명령어가 되기 때문에)

 

package com.yong.controller;

import org.springframework.stereotype.Controller;	
import org.springframework.ui.ExtendedModelMap;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.*;
@Controller
public class ModelTestController {
	
	@RequestMapping("modelTest1.do")
	public String modelTest1(Map model) {
		model.put("result", "Map을 매개변수로 선언한 모델 전달 방식~");
		return "model/modelOk";
	}
	
	@RequestMapping("modelTest2.do")
	public String modelTest2(Model model) {
		model.addAttribute("result","Model을 매개변수로 선언한 모델 전달 방식~");
		return "model/modelOk";
	}
	
	@RequestMapping("modelTest3.do")
	public String modelTest3(ModelMap model) {
		model.addAttribute("result","ModelMap을 매개변수로 선언한 모델 전달 방식~");
		return "model/modelOk";
	}
/*	
	@RequestMapping("/model/modelOk.do")
	public Map modelTest4() {
		Map model = new HashMap();
		model.put("result", "Map객체를 반환하여 데이터 전달~");
		return model;
	}
	*/
	@RequestMapping("/model/modelOk.do")
	public Model modelTest5() {
		Model model = new ExtendedModelMap();
		model.addAttribute("result", "Model객체를 반환하여 데이터 전달~");
		return model;
	}
	
	
}