앞서 /cop/bbs/selectBoardList.do로 데이터를 요청하는 것을 확인햇다.
마찬가지고 request mapping을 처리하는 자바 함수를 호출한다.
여기서는 파랑색으로 요점만 언급하도록 하겠다.
@Resource(name = "EgovBBSManageService") private EgovBBSManageService bbsMngService; @RequestMapping("/cop/bbs/selectBoardList.do") public String selectBoardArticles(@ModelAttribute("searchVO") BoardVO boardVO, ModelMap model, HttpServletRequest request) throws Exception { p // 메인화면에서 넘어온 경우 메뉴 갱신을 위해 추가 request.getSession().setAttribute("menuNo","3000000"); LoginVO user; if(EgovUserDetailsHelper.isAuthenticated()){ user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser(); }else{ user = new LoginVO(); user.setUniqId("anonymous"); }
boardVO.setBbsId(boardVO.getBbsId()); boardVO.setBbsNm(boardVO.getBbsNm()); BoardMasterVO vo = new BoardMasterVO(); vo.setBbsId(boardVO.getBbsId()); vo.setUniqId(user.getUniqId()); BoardMasterVO master = bbsAttrbService.selectBBSMasterInf(vo); //------------------------------- // 방명록이면 방명록 URL로 forward //------------------------------- if (master.getBbsTyCode().equals("BBST04")) { return "forward:/cop/bbs/selectGuestList.do"; } ////----------------------------- boardVO.setPageUnit(propertyService.getInt("pageUnit")); boardVO.setPageSize(propertyService.getInt("pageSize")); PaginationInfo paginationInfo = new PaginationInfo(); paginationInfo.setCurrentPageNo(boardVO.getPageIndex()); paginationInfo.setRecordCountPerPage(boardVO.getPageUnit()); paginationInfo.setPageSize(boardVO.getPageSize()); boardVO.setFirstIndex(paginationInfo.getFirstRecordIndex()); boardVO.setLastIndex(paginationInfo.getLastRecordIndex()); boardVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage()); Map<String, Object> map = bbsMngService.selectBoardArticles(boardVO, vo.getBbsAttrbCode()); int totCnt = Integer.parseInt((String)map.get("resultCnt")); paginationInfo.setTotalRecordCount(totCnt); //------------------------------- // 기본 BBS template 지정 //------------------------------- if (master.getTmplatCours() == null || master.getTmplatCours().equals("")) { master.setTmplatCours("/css/egovframework/cop/bbs/egovBaseTemplate.css"); } ////----------------------------- model.addAttribute("resultList", map.get("resultList")); model.addAttribute("resultCnt", map.get("resultCnt")); model.addAttribute("boardVO", boardVO); model.addAttribute("brdMstrVO", master); model.addAttribute("paginationInfo", paginationInfo); return "cop/bbs/EgovNoticeList"; } |
Resource로 같은 이름의 bean을 인젝션을 받는다.
인젝션이란 Dependency Injection(DI)을 의미하는데 스프링의 주요 개념중 하나 이다.
인젝션 받은 bbsMngService를 이용하여 bbsAttrbService.selectBBSMasterInf(vo) 를 이용하여 DB에서 데이터를 검색해서 master라는 개체에 데이터를 저장한다.
마찬가지로 Map<String, Object> map = bbsMngService.selectBoardArticles(boardVO, vo.getBbsAttrbCode()); 이부분도 DB를 콜하는 부분이다.
받은 데이터를 모델에 model.addAttribute("resultList", map.get("resultList")); 와 같이 추가 시켜줄수 있다.
addAttribute는 어트리 뷰트에 해당이름으로 객체, 문자 등 object를 담을 수 있다.
모든 데이터를 담은 후 cop/bbs/EgovNoticeList 를 리턴한다.
cop/bbs/EgovNoticeList *.do 가 아니라 request mapping대상이 아니여서 view resolve를 통해 리턴하기로 되어 있다.
리턴시에 해당 리턴값앞에 prefix와 suffix를 붙혀 리턴하기로 되어 있다.
[그림 jsp 설정]
즉 위에 cop/bbs/EgovNoticeList는
/WEB-INF/jsp/cop/bbs/EgovNoticeList.jsp 파일을 요청한다.
[그림 jsp 파일 폴더 구조]
'egovframework' 카테고리의 다른 글
[egov] 타일즈(tiles) 적용 - 2 (0) | 2014.07.24 |
---|---|
[egov] 타일즈(tiles) 적용 - 1 (0) | 2014.07.24 |
[egov] 포탈 사이트 화면 분석 - 2 (0) | 2014.07.17 |
[egov] 포탈 사이트 화면 분석 - 1 (0) | 2014.07.17 |
[egov] Simple Template 시작하기 (0) | 2014.07.12 |