Today Yewon Learned

[JSP] JSTL <c:forEach>와 <c:if> 실습 본문

JSP & HTML & CSS

[JSP] JSTL <c:forEach>와 <c:if> 실습

데브워니 2021. 12. 17. 14:38

<현재 상태>

<tr>
	<th class="text-center align-middle">장비유형</th>
	<td class="text-center align-middle">
		<input type="text" class="form-control w-100" name="SCHE_CD" value="${SCHEDULE.getMAC_TYPE()}">
	</td>
<tr>

- DB 데이터에 저장된 MSI로 바로 표기되기 때문에 사용자가 어떤 장비인지 알아보기 불편함

 

 

<조건>

- 다른 화면(장비 등록)에서 설정한 select 속성 값을 현재 화면(스케줄 관리)에 가져와 표기해야 한다.

- controller에서 service등록 후 DB query 를 조회한 뒤, 그 결과를 model.addAttribute로 view단에 연결한다.

- 공통코드의 COMM_SUB_CD에 알맞는 COMM_SUB_NM 불러오기

 

 

- ScheduleController.java

CodeData Mcodedata = new CodeData();
		
Mcodedata.setCOMM_GROUP("M");
Mcodedata.setCOMM_CD("002");

List<?> machine_code = codeService.selectCommCdList(Mcodedata);
model.addAttribute("MACHINE_LIST", machine_code);

 

- schedule_pop.java

<tr>
<th class="text-center align-middle">장비유형</th>
	<td class="text-center align-middle">
		<select class="form-control" name="MACHINE_LIST" disabled="disabled">
			<c:choose>
				<c:when test="${fn:length(MACHINE_LIST) > 0 }">
					<c:forEach var="row" items="${MACHINE_LIST}" varStatus="status">
						<option value='<c:out value="${row.getCOMM_SUB_CD()}"></c:out>'<c:if test="${row.getCOMM_SUB_CD() == SCHEDULE.getMAC_TYPE()}">selected</c:if>><c:out value="${row.getCOMM_SUB_NM()}"></c:out></option>
					</c:forEach>	
				</c:when>
			</c:choose>
		</select>
	</td>
<tr>

* select의 option 속성에 <c:if>문을 넣어주어,

MACHINE_LIST로 받은 COMM_SUB_CD()컬럼과 SCHEDULE로 받은 MAC_TYPE()컬럼을 비교하여 출력하였음.

 

 

<결과>

- 장비유형 - COMM_SUB_CD 는 MSI 이며, MSI와 매칭되는 COOM_SUB_NM은 사이니지이다.

- 만약, 이 설정을 하지 않으면, 장비유형에 MSI라고만 출력됨

Comments