JSP와 모델객체 출력관련
- 작성자 :
- 정*랑
- 작성일 :
- 2012-11-21 16:11:01
- 조회수 :
- 1,472
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
JSP파일쪽으로 출력하려는 데이터 가운데 일반변수(String같은)도 있지만 List타입의 변수(linkView라는 VO)를 JSP에 출력할 때 어떻게 할 수 있는지 하는 부분에 대한 질문입니다.
제가 생성한 VO는 예를 들어 다음과 같습니다.
<VO : SramOsVO>
private String masNo;
private String classname;
...
private List<LinkViewVO> LV1;
private List<LinkViewVO> LV2;
...
세터/게터 함수
이상이 VO이고 LinkViewVO는 다음과 같습니다.
<VO : LinkViewVO>
private String dId;
private String dType;
private String dName;
위와 같은 것을 JSP쪽에서 보는데
<tr><td class="tbtd_content"><form:input path="masNo" cssClass="essentiality" readonly="true" /></td>
<td class="tbtd_content"><form:input path="classname" cssClass="txt" maxlength="20"/>
와 같이 masNo와 classname의 단건의 데이터들은 잘 출력되는데
List형태의 데이터를 뿌려주려면 어떻게 해야하는지요..
참고로
Controller에서는
model.addAttribute(selectSramOs(sramOsVO, searchVO));의 형태로 보내주고
selectSramOs는 아래와 같이 구현되어있습니다.
public @ModelAttribute("sramOsVO")
SramOsVO selectSramOs(SramOsVO sramOsVO,@ModelAttribute("searchVO") SramDefaultVO searchVO) throws Exception {
return sramService.selectSramOs(sramOsVO);}
이상입니다.^^
제가 생성한 VO는 예를 들어 다음과 같습니다.
<VO : SramOsVO>
private String masNo;
private String classname;
...
private List<LinkViewVO> LV1;
private List<LinkViewVO> LV2;
...
세터/게터 함수
이상이 VO이고 LinkViewVO는 다음과 같습니다.
<VO : LinkViewVO>
private String dId;
private String dType;
private String dName;
위와 같은 것을 JSP쪽에서 보는데
<tr><td class="tbtd_content"><form:input path="masNo" cssClass="essentiality" readonly="true" /></td>
<td class="tbtd_content"><form:input path="classname" cssClass="txt" maxlength="20"/>
와 같이 masNo와 classname의 단건의 데이터들은 잘 출력되는데
List형태의 데이터를 뿌려주려면 어떻게 해야하는지요..
참고로
Controller에서는
model.addAttribute(selectSramOs(sramOsVO, searchVO));의 형태로 보내주고
selectSramOs는 아래와 같이 구현되어있습니다.
public @ModelAttribute("sramOsVO")
SramOsVO selectSramOs(SramOsVO sramOsVO,@ModelAttribute("searchVO") SramDefaultVO searchVO) throws Exception {
return sramService.selectSramOs(sramOsVO);}
이상입니다.^^
A
정우랑님 안녕하세요?
JSP에서 VO 내의 List 객체 출력 방식은 여러가지 방식으로 출력이 가능 하십니다.
전자정부 표준프레임워크 공통컴포넌트 에서는 JSTL 내의 <c:forEach 태그를 사용하여 다음과 같은 방식으로 리스트를 화면에 출력 하고 있습니다.
<tbody>
<c:forEach items="${resultList}" var="resultInfo" varStatus="status">
<tr>
<td class="lt_text3"><c:out value="${(searchVO.pageIndex-1) * searchVO.pageSize + status.count}"/></td>
<td class="listLeft">
<form name="subForm" method="post" action="<c:url value='/uss/olh/qna/QnaInqireCoUpdt.do'/>">
<input name="faqId" type="hidden" value="${resultInfo.faqId}">
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>">
<span class="link"><input type="submit" value="<c:out value="${resultInfo.qestnSj}"/>" onclick="fn_egov_inquire_qnadetail('<c:out value="${resultInfo.qaId}"/>'); return false;"></span>
</form>
</td>
<td class="lt_text3"><c:out value="${resultInfo.wrterNm}"/></td>
<td class="lt_text3"><c:out value="${resultInfo.qnaProcessSttusCodeNm}"/></td>
<td class="lt_text3"><c:out value="${resultInfo.inqireCo}"/></td>
<td class="lt_text3"><c:out value='${fn:substring(resultInfo.writngDe, 0,4)}'/>-<c:out value='${fn:substring(resultInfo.writngDe, 4,6)}'/>-<c:out value='${fn:substring(resultInfo.writngDe, 6,8)}'/></td>
</tr>
</c:forEach>
</tbody>
우선 위와 같이 적용을 해 보신후에도 정확한 출력이 안 되신다면..
참고로 위의 소스는 공통컴포넌트 내에 QnA 게시판 컴포넌트에 적용 된 소스이며,
파일 위치는 다음과 같습니다. /egovframework/com/uss/olh/qna/EgovQnaListInqire.jsp
적용 후 잘 안되실 경우 위 컴포넌트의 컨트롤러에서 JSP 화면으로 VO를 넘기는 방식을 참고하셔서 따라 해 보시면 되실 것 같습니다.
JSP에서 VO 내의 List 객체 출력 방식은 여러가지 방식으로 출력이 가능 하십니다.
전자정부 표준프레임워크 공통컴포넌트 에서는 JSTL 내의 <c:forEach 태그를 사용하여 다음과 같은 방식으로 리스트를 화면에 출력 하고 있습니다.
<tbody>
<c:forEach items="${resultList}" var="resultInfo" varStatus="status">
<tr>
<td class="lt_text3"><c:out value="${(searchVO.pageIndex-1) * searchVO.pageSize + status.count}"/></td>
<td class="listLeft">
<form name="subForm" method="post" action="<c:url value='/uss/olh/qna/QnaInqireCoUpdt.do'/>">
<input name="faqId" type="hidden" value="${resultInfo.faqId}">
<input name="pageIndex" type="hidden" value="<c:out value='${searchVO.pageIndex}'/>">
<span class="link"><input type="submit" value="<c:out value="${resultInfo.qestnSj}"/>" onclick="fn_egov_inquire_qnadetail('<c:out value="${resultInfo.qaId}"/>'); return false;"></span>
</form>
</td>
<td class="lt_text3"><c:out value="${resultInfo.wrterNm}"/></td>
<td class="lt_text3"><c:out value="${resultInfo.qnaProcessSttusCodeNm}"/></td>
<td class="lt_text3"><c:out value="${resultInfo.inqireCo}"/></td>
<td class="lt_text3"><c:out value='${fn:substring(resultInfo.writngDe, 0,4)}'/>-<c:out value='${fn:substring(resultInfo.writngDe, 4,6)}'/>-<c:out value='${fn:substring(resultInfo.writngDe, 6,8)}'/></td>
</tr>
</c:forEach>
</tbody>
우선 위와 같이 적용을 해 보신후에도 정확한 출력이 안 되신다면..
참고로 위의 소스는 공통컴포넌트 내에 QnA 게시판 컴포넌트에 적용 된 소스이며,
파일 위치는 다음과 같습니다. /egovframework/com/uss/olh/qna/EgovQnaListInqire.jsp
적용 후 잘 안되실 경우 위 컴포넌트의 컨트롤러에서 JSP 화면으로 VO를 넘기는 방식을 참고하셔서 따라 해 보시면 되실 것 같습니다.