스프링 컨트롤러Controller, 모델Model 객체 사용법 : 아래 코드 주석 참고.
@RequestMapping(value="patternTrend.do") // url pattern mapping
public String patternTrend(Model m) { // Model : 데이터를 담는 그릇 역할, map 구조로 저장됨// key와 value로 구성
m.addAttribute("list" ,patternTrendService.getCrsrdList()); // model.addAttribute("변수명", 값)
return "_60patternTrend/patternTrend"; // jsp로 포워딩됨, JSP에서 dispatcher 객체로 forward한것과 같은 역할
}
참고 : https://velog.io/@leyuri/Spring-model-%EA%B0%9D%EC%B2%B4%EB%9E%80
model 객체
- Controller에서 생성한 데이터를 담아서 View로 전달할 때 사용하는 객체.
- Servelt의 request.setAttribute()와 유사한 역할.
- addAttribute("키", "값") 메소드를 사용하여 전달할 데이터 세팅.
@ModelAttribute
- 강제로 전달받은 파라미터를 Model에 담아서 전달하도록 할 때 필요한 어노테이션
- 스프링에서 Java beans 규칙(Getter, Setter, 생성자 포함)에 맞는 객체는 파라미터 전달이 자동으로 가능.
- 하지만 일반 변수의 경우, 자동 전달 불가능. model 객체를 통해서 전달 필요.
참고 : https://devlogofchris.tistory.com/53
Model에 데이터를 담을 때 addAttribute( ) 메소드를 사용하는데,
2가지 사용 방법이 있다.
Model addAttribute(String name, Object value)
- value 객체를 name 이름으로 추가한다. 뷰 코드에서는 name으로 지정한 이름을 통해서 value를 사용한다.
@RequestMapping(value = "/standardCd/selectInfo.do")
public String selectInfo(ModelMap model) throws Exception {
List<StandardCodeVO> list = standardCodeService.selectInfo();
model.addAttribute("row", list);
return "jsonView"; //model에 담은 데이터를 json화 한다고 생각하면 편하다(bean에 jsonview 선언)
}
Model addAttribute(Object value)
- value를 추가한다. value의 패키지 이름을 제외한 단순 클래스 이름을 모델 이름으로 사용한다. 이 때 첫 글자는 소문자로 처리한다.
- value가 배열이거나 컬렉션인 경우 첫 번째 원소의 클래스 이름 뒤에 "List"를 붙인 걸 모델 이름으로 사용한다. 이 경우에도 클래스 이름의 첫자는 소문자로 처리한다.
출처: https://devbox.tistory.com/entry/Spring-모델-생성하기 [장인개발자를 꿈꾸는 :: 기록하는 공간]
출처: https://all-record.tistory.com/167 [세상의 모든 기록]
참고 : https://abn-abn.tistory.com/174
//컨트롤러 어노테이션(컨트롤러 객체를 자동으로 생성)
@Controller
public class MainController {
// 로그 객체 생성
private static final Logger logger =
LoggerFactory.getLogger(MainController.class);
// 시작 페이지로 이동
@RequestMapping("/") // url pattern mapping
public String main(Model model) {
//JSP 서블릿 클래스는 doGet doPost 메서드가 존재했는데 여기서 model이 그 역할을 한다.
// Model : 데이터를 담는 그릇 역할, map 구조로 저장됨// key와 value로 구성
// model.addAttribute("변수명", 값)
model.addAttribute("message", "홈페이지 방문을 환영합니다.");
// <beans:property name="prefix" value="/WEB-INF/views/" />
// <beans:property name="suffix" value=".jsp" />
// /WEB-INF/views/main.jsp
return "main";
// main.jsp로 포워딩됨 //JSP에서 dispatcher 객체로 forward한것과 같은 역할
//나머지 경로는 spring > appServlet > servlet-context.xml에 설정돼있음
//컨트롤러에 대한 설정은 서블릿컨텍스트에 있다.
}//>> main.jsp를 컨트롤 클래스를 경유하여 실행한다.
https://memories95.tistory.com/109
https://cupdisin.tistory.com/19
728x90
300x250