Today Yewon Learned

[JSP] JSTL <c:choose> 실습 본문

JSP & HTML & CSS

[JSP] JSTL <c:choose> 실습

데브워니 2022. 1. 6. 09:06

<조건>

- index.jsp 장비 목록에서 장비 하나를 클릭하면 해당 장비에 대한 정보 검색

- combox box를 이용하여 장비 목록 선택

- index.jsp 장비관리 메뉴를 클릭하면 전체 장비 조회가 기본값으로 selected, 다른 장비도 선택할 수 있어야함

 

index.jsp

 

 

- Controller.java

@RequestMapping(value = "machine.do", method = {RequestMethod.GET, RequestMethod.POST }) 
	public String index(ModelMap model, HttpServletRequest request) throws Exception {
		
		List<MenuData> list = menuService.getUserMenu(request.getSession().getAttribute("id").toString());
		
		model.addAttribute("MenuList", list);
		
		MachineData data = new MachineData();
		
		data.setUSER_ID(request.getSession().getAttribute("id").toString());
		
		List<MachineData> machine_list = machineService.getMachineList(data); //전체 장비 검색
		model.addAttribute("Machine_list", machine_list);
		
		data.setMAC_CD(request.getParameter("MAC_CD"));
		
		List<MachineData> machine_info = machineService.getMachineMine(data); //MAC_CD로 장비 조회
		model.addAttribute("Machine_info", machine_info);
		
		return "machine/index";
	}

 

 

- index.jsp

<div class="col-md-2">
   	<select class="form-control" name="Machine_list" onchange="machine_choice(this);">
		<option value="">전체</option>
		<c:choose>
			<c:when test="${fn:length(Machine_list) > 0 }">
				<c:forEach var="row" items="${Machine_list}" varStatus="status">
					<c:choose>
						<c:when test="${fn:length(Machine_info) > 0 }">
							<c:forEach var="row2" items="${Machine_info}" varStatus="status">
								<option value='<c:out value="${row.getMAC_CD()}"></c:out>'<c:if test="${row.getMAC_CD() == row2.getMAC_CD()}">selected</c:if>><c:out value="${row.getMAC_CD()}"></c:out></option>
							</c:forEach>
						</c:when>
						<c:otherwise>
							<option value='<c:out value="${row.getMAC_CD()}"></c:out>'><c:out value="${row.getMAC_CD()}"></c:out></option>
						</c:otherwise>
					</c:choose>
				</c:forEach>
			</c:when>
		</c:choose>
	</select>
 </div>

- JSTL <c:choose>문과 <c:forEach>문 이용

 

 

<결과>

장비 하나 선택시

- index.jsp에서 하나의 장비를 선택할 시 combo box에 해당 장비코드가 selected되어 나타남

- 전체 장비 및 다른 장비 조회 가능

 

 

장비관리 메뉴 클릭시

- index.jsp에서 장비관리 메뉴 클릭시 combo box에 전체 장비가 selected되어 나타남

- 전체 장비 및 다른 장비 조회 가능

Comments