데이타베이스에서 다음과 같이 쿼리를 통하여 목록을 조회한다.
xml
select '2015' as stdr_year
union all
select '2014' as stdr_year
그러면 다음과 같이 결과가 출력된다.
ServiceImpl
쿼리르 통하여 조회한 데이타를 Service를 통하여 Controller로 리턴한다. 리턴할때는 resultMap에 담아서 리턴하여주었다. 리턴타입은 여러가지로 잡아줄 수 있을 것이다.
@SuppressWarnings("unchecked")
public Map<String, Object> getStdrYearList(CommonVO vo) throws Exception{
List<CommonVO> getStdrYearList = new ArrayList();
Map<String, Object> resultMap = new HashMap<String, Object>();
getStdrYearList = (List<CommonVO>) cmmnDao.list(vo, "bigdataDashboard.getStdrYearList");
resultMap.put("getStdrYearList", getStdrYearList);
return resultMap;
}
Controller
Service에서 넘겨받은 데이타를 Controller에서 가공하여 model에 담아서 view로 넘겨준다.
@RequestMapping("/getData.do")
public String getData(Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
CommonVO vo = new CommonVO(request);
Map<String, Object> resultMap = new HashMap<String, Object>();
resultMap = dashboardService.getStdrYearList(vo);
model.addAttribute("infoList", resultMap);
return "view";
}
JSP
view에서는 다음과 같이 forEach문을 사용한다.
<select id="speed" class="w43p">
<c:set var="arr" value="${infoList.getStdrYearList}"/>
<c:forEach var="item" items="${arr}" varStatus="status">
<option value="${item.stdrYear}"><c:out value="${item.stdrYear}"></c:out></option>
</c:forEach>
</select>
javascript
javascript에서는 다음과 같이 넘겨받은 값을 사용할 수 있다.
var dataLength = '${fn:length(infoList.getStdrYearList)}';
alert(dataLength);
쿼리를 조회하여 서비스와 컨트롤러를 통하여 JSP로 넘겨받아서 forEach를 사용하는 방법을 알아보았다. 참고하면 될것이다.