괴발개발/Spring Framework

SP_.addObject("A",B)

moonday 2021. 7. 22. 21:41

- A와 B는 같을 수도 다를 수도 있음.

- addObject()는 .jsp파일이랑 연결되어서 값을 보여줄 때, 동일한 이름으로 써야 함

예를들면, mv.addObject("list",list)라고 쓰면, 게시글목록을 보여주는 list.jsp파일에서 글번호값을 불러오기위해 <c:forEach items="list" var="board">와같이 이름을 꼭 맞춰줘야 함. 그리고 forEach태그안에 var 변수명은 맘대로해도되고, 해당 변수명을 따라서 글번호 값이 ${board.num} 과 같은 이름형식을 가질 수 있음(num은 VO이름기준)

-B에 들어갈 이름은 아래와 같이 정보를 담고있는 객체를 먼저 선언하고 사용해야 함

BoardVO detail = boardService.getBoardDetail(num);
mv.addObject("detail", detail);

 

1.

객체.addObject("A",B)

=> B 객체에 값을담아 넘겨서 jsp에서 객체의 값들을 활용할 수 있음

//왼쪽 A가 jsp에서 B값을 가진 객체명

2.

객체.addObject("A","B")

=> 1번 B처럼 객체에 값을담아 넘기는게 아니라, ""를이용해서 String처럼 문자열화로 화면에보냄

 

*home 메인페이지를 할때는 mv.addObject("home", "home")으로 써서 home이라는 문자열 글자를 보여줬음.

그런데, mv.addObject("list","list");는 jsp파일에서 값을 사용할 때, 문자열은 값이 아니기때문에 값을 불러오지못하게하는 문제가 생기므로 B위치의 ""를 꼭 빼줘야함 =>  "B"와 B의 차이는 jsp에서 값을 불러와서 화면에 띄워(B)줄 것인지 아니면, B라는 문자열 자체("B")를 보여줄것인지에 따라 사용하면 됨.

 

 

*addObject로 컨트롤러에서 jsp로 보낸 값은 일반화면에 나타나는 <div>와 같은 태그들 외에도 기능을 추가하는 <script>태그 안에서도 쓸 수 있음.