앞서 /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 파일 폴더 구조]



이렇게 jsp파일이 요청 되고 해당 jsp를 통해 클라이언트로 페이지를 전달한다.


+ Recent posts