본문 바로가기

Spring+JSP+JSTL

스프링 컨트롤러Controller, 모델Model 객체 사용법

스프링 컨트롤러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

 

Spring - model 객체란?

자주 사용했는데 막상 의미를 모르고 사용하고 있다는 생각이 들었다. 😂Controller에서 생성한 데이터를 담아서 View로 전달할 때 사용하는 객체.Servelt의 request.setAttribute()와 유사한 역할.강제로

velog.io

model 객체

  • Controller에서 생성한 데이터를 담아서 View로 전달할 때 사용하는 객체.
  • Servelt의 request.setAttribute()와 유사한 역할.
  • addAttribute("키", "값") 메소드를 사용하여 전달할 데이터 세팅.

@ModelAttribute

  • 강제로 전달받은 파라미터를 Model에 담아서 전달하도록 할 때 필요한 어노테이션
  • 스프링에서 Java beans 규칙(Getter, Setter, 생성자 포함)에 맞는 객체는 파라미터 전달이 자동으로 가능.
  • 하지만 일반 변수의 경우, 자동 전달 불가능. model 객체를 통해서 전달 필요.

참고 : https://devlogofchris.tistory.com/53

 

[Spring] model.addAttribute() 메소드

Model에 데이터를 담을 때 addAttribute( ) 메소드를 사용하는데, 2가지 사용 방법이 있다. Model addAttribute(String name, Object value) - value 객체를 name 이름으로 추가한다. 뷰 코드에서는 name으로 지..

devlogofchris.tistory.com

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

 

spring 4강 Controller와 View의 연결 방법

spring 4강 Controller와 View의 연결 방법 @Controller 어노테이션을 쓴 클래스는 개발자가 객체를 관리할 수 없다. 컨트롤러의 객체는 스프링 프레임워크가 관리한다. view/include/header.jsp 1 2 3 4 5 6 7 8..

abn-abn.tistory.com

 

//컨트롤러 어노테이션(컨트롤러 객체를 자동으로 생성)
@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

 

[Spring Boot] Model 객체

Model 객체 - 모델은 HashMap 형태를 갖고 있으므로 key값과 value값처럼 사용할 수 있다. - addAttribute는 Map의 put과 같은 기능과 같아서 이를 통해 해당 모델에 원하는 속성과 그것에 대한 값을 주어 전

memories95.tistory.com

 


 

https://wonos.tistory.com/380

 

[Spring] 컨트롤러, Model, ModelAndView 사용법

client가 요청을 하면, @Controller에 진입한다. 컨트롤러는 요청에 대한 작업을 수행하고, 뷰쪽으로 데이터를 전달한다. 컨트롤러 클래스 제작 순서 @Controller를 이용해서 클래스를 생성한다. @Request

wonos.tistory.com

 


https://admm.tistory.com/54

 

[Spring] 컨트롤러와 프론트 사이에서 값 전달하는 방법의 종류

[1] 들어가며 Spring 프레임워크의 컨트롤러와 JSP사이에서 값을 주고 받는 것은 웹프로그래밍에서 가장 기본적인 작업입니다. 하지만 값을 전달하는 방법의 종류가 많고 프레임워크특성상 많은

admm.tistory.com


https://cupdisin.tistory.com/19

 

스프링 컨트롤러 기본 구조 spring controller

스프링 컨트롤러 구조에 대해 알아보자. @Controller 라고 어노테이션을 통해 컨트롤러임을 명시하고, View에게 데이터를 전달하기 위해 Model 객체 생성과 RequestMethod 를 통해 접근방식 설정도 가능

cupdisin.tistory.com

 

728x90
300x250