티스토리 뷰
이전 포스팅에서 Command 객체의 이름을 임의로 변경하기 위해서 @ModelAttribute 어노테이션을 한번 사용했었다.
그러나 이외에도 View 단에서 사용할 데이터를 미리 설정해놓는 용도로도 @ModelAttribute 어노테이션을 사용할 수 있다.
바로 확인해보자.
우선, BoardController 클래스의 다른 컨트롤러 매서드 상단에 다음과 같이 Map을 반환하는 매서드를 선언하여 상단에 @ModelAttribute 어노테이션으로 값을 등록한다.
@ModelAttribute("conditionMap")
public Map<String, String> searchConditionMap() {
Map<String, String> conditionMap = new HashMap<String, String>();
conditionMap.put("제목", "TITLE");
conditionMap.put("내용", "CONTENT");
return conditionMap;
}
@RequestMapping(value= "/getBoardList.do")
public String getBoardList(BoardVO vo, BoardDAO dao, Model model) {
System.out.println("목록 처리");
List<BoardVO> boardList= dao.getBoardList(vo);
model.addAttribute("boardList", boardList);
return "getBoardList.jsp";
}
이렇게 설정해놓으면, 다른 Controller보다 searchConditionMap 매서드가 먼저 실행되며, 리턴 값을 Model 객체에 저장한다.
따라서 직전 포스팅과 같이 @RequestParam 어노테이션을 사용하지 않고, 미리 Model 객체에 저장된 Map을 이용하여 View 단에 값을 전달할 수 있는 것이다.
View에서는 다음과 같이 표기가 가능하다.
<tr>
<td align="right">
<select name="searchCondition">
<c:forEach items = "${conditionMap }" var = "option">
<option value = "${option.value }">${option.key }
</c:forEach>
</select>
<input type="text" name="searchKeyword" />
<input type="submit" value="검색">
</td>
</tr>
반응형
'[JAVA] > Spring' 카테고리의 다른 글
[Spring] Spring MVC 7: 비즈니스 컴포넌트 사용 (0) | 2021.06.28 |
---|---|
[Spring] Spring MVC 6: @SessionAttribute 어노테이션 (0) | 2021.06.23 |
[Spring] Spring MVC 5: @RequestParam 어노테이션 (0) | 2021.06.23 |
[Spring] Spring MVC 4: 어노테이션 기반 MVC (0) | 2021.06.23 |
[Spring] Spring MVC 3: *.do 요청 인코딩 설정 (0) | 2021.06.23 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- react-native
- 파니노구스토
- AsyncStorage
- javascript
- Async
- redux-thunk
- Promise
- react
- 이탈리안 레스토랑
- 맛집
- 정보보안기사 #실기 #정리
- redux
- 인천 구월동 이탈리안 맛집
- await
- 인천 구월동 맛집
- Total
- Today
- Yesterday