관리자/사용자 기소유예 교육문의 기능

This commit is contained in:
hylee 2023-11-21 18:28:42 +09:00
parent 41ff71b2da
commit 54669eda30
7 changed files with 599 additions and 5 deletions

View File

@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartHttpServletRequest; import org.springframework.web.multipart.MultipartHttpServletRequest;
import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
import egovframework.rte.fdl.idgnr.EgovIdGnrService; import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
@ -33,7 +34,9 @@ import kcc.com.cmm.util.StringUtil;
import kcc.com.utl.user.service.CheckFileUtil; import kcc.com.utl.user.service.CheckFileUtil;
import kcc.com.utl.user.service.CheckLoginUtil; import kcc.com.utl.user.service.CheckLoginUtil;
import kcc.let.uat.uia.service.SsoLoginVO; import kcc.let.uat.uia.service.SsoLoginVO;
import kcc.let.utl.fcc.service.EgovCryptoUtil;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsAplctPrdService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsCntntVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsDetailVO;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsOnlnCntntService;
import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService; import kcc.ve.instr.tngrVisitEdu.prcsInfo.service.VEPrcsService;
@ -110,6 +113,10 @@ public class CndtnTrgtMngController {
@Resource(name = "EgovCmmUseService") @Resource(name = "EgovCmmUseService")
private EgovCmmUseService egovCmmUseService; private EgovCmmUseService egovCmmUseService;
//암복호화 유틸
@Resource(name = "egovCryptoUtil")
EgovCryptoUtil egovCryptoUtil;
/* /*
@ -772,6 +779,135 @@ public class CndtnTrgtMngController {
return "oprtn/cndtnSspnIdtmt/trgtMngMdfy"; return "oprtn/cndtnSspnIdtmt/trgtMngMdfy";
} }
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do")
public String cndtnEduQnaMngList(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) return s_oprtnLoginCheckNInfo;
//로그인 처리====================================
//1.pageing step1
PaginationInfo paginationInfo = this.setPagingStep1(vEPrcsDetailVO);
//임시로 페이징 처리를 안하기 위해서 RecordCountPerPage 수를 10000 으로 셋팅함
//paginationInfo.setRecordCountPerPage(10000);
//2. pageing step2
vEPrcsDetailVO = this.setPagingStep2(vEPrcsDetailVO, paginationInfo);
//기반강화 조회
vEPrcsDetailVO.setLctrDivCd("60"); //강의구분코드 VE0011 10-청소년강의, 20-성인강의, 30-체험, 50-기반강화, 60-조건부
// if(StringUtil.isNotEmpty(vEPrcsDetailVO.getSearchKeyword())){
// String selectCondition = "AND a.PRCS_NM LIKE CONCAT ('%', '" +vEPrcsDetailVO.getSearchKeyword() + "', '%')";
// vEPrcsDetailVO.setSelectPagingListQuery(selectCondition);
// }
List<VEPrcsDetailVO> vEPrcsDetailVOList = vEPrcsService.selectQnaPagingList(vEPrcsDetailVO);
//3.pageing step3
paginationInfo = this.setPagingStep3(vEPrcsDetailVOList, paginationInfo);
model.addAttribute("paginationInfo", paginationInfo);
// 사용자 이름 디코딩
vEPrcsDetailVOList.stream().forEach(t->t.setMberNm(egovCryptoUtil.decrypt(t.getMberNm())));
//대상 리스트, 페이징 정보 전달
model.addAttribute("list", vEPrcsDetailVOList);
return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList";
// return "oprtn/fndthEnhanceTrn/fndthEduQnaMngList";
}
/**
* @methodName : cndtnEduQnaMngDetail
* @author : 이호영
* @date : 2023.11.21
* @description :
* @param vEPrcsDetailVO
* @param model
* @param redirectAttributes
* @param session
* @param request
* @return
* @throws Exception
*/
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail.do")
public String cndtnEduQnaMngDetail(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, RedirectAttributes redirectAttributes
, HttpSession session
, HttpServletRequest request
) throws Exception {
//로그인 처리====================================
//로그인 정보 가져오기
System.out.println("vEPrcsDetailVO.getPrcsAplctPrdQnaOrd() : "+ vEPrcsDetailVO.getPrcsAplctPrdQnaOrd());
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
//로그인 처리====================================
//과정 조회
VEPrcsDetailVO vEPrcsQnaDetail = vEPrcsService.selectQnaDetail(vEPrcsDetailVO);
vEPrcsQnaDetail.setMberNm(egovCryptoUtil.decrypt(vEPrcsQnaDetail.getMberNm()));
model.addAttribute("info", vEPrcsQnaDetail);
//세부과정 목록 조회
return "oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail";
}
@RequestMapping("/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do")
public ModelAndView cndtnEduQnaMngUpdateAjax(
@ModelAttribute("vEPrcsDetailVO") VEPrcsDetailVO vEPrcsDetailVO
, ModelMap model
, HttpServletRequest request
) throws Exception {
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("jsonView");
//로그인 처리====================================
//로그인 정보 가져오기
String s_oprtnLoginCheckNInfo = checkLoginUtil.oprtnCheckNInfo(model);
if (!"".equals(s_oprtnLoginCheckNInfo)) {
modelAndView.addObject("result", "loginFail");
return modelAndView;
}
//로그인 처리====================================
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id
vEPrcsService.qnaUpdate(vEPrcsDetailVO);
//세부과정 지우고 다시 생성
VEPrcsCntntVO vEPrcsCntntVO = new VEPrcsCntntVO();
vEPrcsCntntVO.setPrcsOrd(vEPrcsDetailVO.getPrcsOrd());
modelAndView.addObject("result", "success");
return modelAndView;
}
@ -816,7 +952,6 @@ public class CndtnTrgtMngController {
return p_vEPrcsDetailVO; return p_vEPrcsDetailVO;
} }
//페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기 //페이징을 위한 처리 step3 - 전체 게시물 수량 설정하기
private PaginationInfo setPagingStep3( private PaginationInfo setPagingStep3(
List<VEPrcsDetailVO> p_vEPrcsDetailVOList List<VEPrcsDetailVO> p_vEPrcsDetailVOList

View File

@ -566,7 +566,8 @@ public class FndthPrcsInfoMngController {
LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기 LoginVO loginVO = checkLoginUtil.getAuthLoginVO(); //권한에 따른 로그인 정보 가져오기
SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기 SsoLoginVO ssoLoginVO = checkLoginUtil.getSSOLoginVO(request); //SSO 로그인 정보 가져오기
vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id vEPrcsDetailVO.setLastUpdusrId(loginVO.getUniqId()); //esntl_id
vEPrcsDetailVO.setQnaAnswerer(loginVO.getUniqId()); //esntl_id
vEPrcsService.qnaUpdate(vEPrcsDetailVO); vEPrcsService.qnaUpdate(vEPrcsDetailVO);

View File

@ -1355,7 +1355,7 @@
, QNA_ANSWERER as qnaAnswerer , QNA_ANSWERER as qnaAnswerer
, TO_CHAR(FRST_REGIST_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm , TO_CHAR(FRST_REGIST_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm
, FRST_REGISTER_ID as frstRegisterId , FRST_REGISTER_ID as frstRegisterId
, TO_CHAR(LAST_UPDT_PNTTM, 'YYYY-MM-DD') as frstRegistPnttm , TO_CHAR(LAST_UPDT_PNTTM, 'YYYY-MM-DD') as lastUpdtPnttm
, LAST_UPDUSR_ID as lastUpdusrId , LAST_UPDUSR_ID as lastUpdusrId
FROM FROM
VEA_PRCS_APLCT_PRD_QNA VEA_PRCS_APLCT_PRD_QNA

View File

@ -419,6 +419,7 @@
UPDATE VEA_PRCS_APLCT_PRD_QNA SET UPDATE VEA_PRCS_APLCT_PRD_QNA SET
QNA_ANSWER_CN = #qnaAnswerCn# QNA_ANSWER_CN = #qnaAnswerCn#
, QNA_ANSWERER = #qnaAnswerer#
, LAST_UPDUSR_ID = #lastUpdusrId# , LAST_UPDUSR_ID = #lastUpdusrId#
, LAST_UPDT_PNTTM = SYSDATE , LAST_UPDT_PNTTM = SYSDATE
WHERE PRCS_APLCT_PRD_QNA_ORD = #prcsAplctPrdQnaOrd# WHERE PRCS_APLCT_PRD_QNA_ORD = #prcsAplctPrdQnaOrd#

View File

@ -0,0 +1,197 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%
/**
* @Class Name : fndthEduPrcsMngDetail.jsp
* @Description : 기반강화연수 상세화면
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2021.12.16 조용준 최초 생성
* @author 조용주
* @since 2021.12.16
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<title>교육과정관리</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function fncGoList(){
var listForm = document.listForm ;
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do'/>";
listForm.submit();
}
function updateQnaAnswerCn(){
$("#prvtMemoCn").val($("#hiddenMemo").val());
var data1 = new FormData(document.getElementById("detailForm"));
$.ajax({
type:"POST",
url:"${pageContext.request.contextPath}/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngUpdateAjax.do",
data:data1,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("저장 되었습니다.");
// location.reload();
fncGoList();
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
</script>
</head>
<body>
<form id="listForm" name="listForm" method="post">
</form>
<form:form id="detailForm" name="detailForm" commandName="vEPrcsDetailVO" method="post">
<input type="hidden" name="prcsAplctPrdQnaOrd" id="prcsAplctPrdQnaOrd" value="<c:out value='${vEPrcsDetailVO.prcsAplctPrdQnaOrd}' />"/>
<!-- cont -->
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육문의상세</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">교육문의상세</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<!-- list_상세 -->
<div class="tb_tit01">
<p>교육문의상세</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 210px;">
<col style="width: auto;">
<col style="width: 210px;">
<col style="width: auto;">
</colgroup>
<tbody>
<tr>
<th scope="row">질문자ID</th>
<td>
<c:out value='${info.qnaRegist}' />
</td>
</tr>
<tr>
<th scope="row">질문자 이름</th>
<td>
<c:out value='${info.mberNm}' />
</td>
</tr>
<tr>
<th scope="row">질문내용</th>
<td>
<c:out value='${info.qnaCn}' />
</td>
</tr>
<tr>
<th scope="row">답변상태</th>
<td>
<c:choose>
<c:when test="${empty info.qnaAnswerCn }">
미완료
</c:when>
<c:otherwise>
완료
</c:otherwise>
</c:choose>
</td>
</tr>
<tr>
<th scope="row">답변일시</th>
<td>
<c:choose>
<c:when test="${empty info.lastUpdtPnttm }">
-
</c:when>
<c:otherwise>
<c:out value='${info.lastUpdtPnttm }'/>
</c:otherwise>
</c:choose>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- 비공개 메보 정보 -->
<div class="tb_tit01">
<p>답변</p>
</div>
<div class="tb_type02">
<table>
<colgroup>
<col style="width: 220px;">
<col style="width: auto;">
</colgroup>
<tr>
<th scope="row">
<p>내용</p>
</th>
<td class="tb_alram">
<div>
<textarea name="qnaAnswerCn" id="qnaAnswerCn"><c:out value="${info.qnaAnswerCn}" /></textarea>
<button type="button" class="btn_type08" onclick="updateQnaAnswerCn(); return false;">답변 등록</button>
</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- //list_상세 -->
<!-- btn_wrap -->
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
<button type="button" class="btn_type03" onclick="fncGoList(); return false;">목록</button>
</div>
</div>
</div>
</div>
</div>
</form:form>
<!-- //cont -->
</body>
</html>

View File

@ -0,0 +1,260 @@
<!DOCTYPE html>
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="validator" uri="http://www.springmodules.org/tags/commons-validator" %>
<%@ taglib prefix="kc" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<%@ taglib prefix="un" uri="http://jakarta.apache.org/taglibs/unstandard-1.0" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="ve" uri="/WEB-INF/tlds/kcc_tld.tld"%>
<un:useConstants var="KccadrStatus" className="kcc.kccadr.cmm.KccadrConstants" />
<%
/**
* @Class Name : fndthEduQnaMngList.jsp
* @Description : 기반강화연수 과정관리 목록
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2023.11.17 이호영 최초 생성
* @author 조용준
* @since 2021.12.14
* @version 1.0
* @see
*
*/
%>
<html lang="ko">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style>
input:read-only{
background-color: #ededed;
}
</style>
<script type="text/javascript">
function fncGoList(){
linkPage(1);
}
function linkPage(pageNo){
var listForm = document.listForm ;
listForm.pageIndex.value = pageNo ;
listForm.searchKeyword.value = $('#searchKeyword').val();
listForm.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngList.do'/>";
listForm.submit();
}
function fncGoDetail(prcsAplctPrdQnaOrd){
var form = document.detailForm ;
form.prcsAplctPrdQnaOrd.value = prcsAplctPrdQnaOrd ;
form.action = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduQnaMngDetail.do'/>";
form.submit();
}
/*
function fncDelete(prcsOrd){
document.listForm.prcsOrd.value = prcsOrd ;
var pageIndex = document.listForm.pageIndex.value;
if($(".listCount").length == '1'){
pageIndex = pageIndex -1;
}
var data = new FormData(document.getElementById("listForm"));
if(confirm("삭제하시겠습니까?")){
var url = "<c:url value='/kccadr/oprtn/cndtnSspnIdtmt/cndtnEduPrcsMngDeleteAjax.do'/>";
console.log(data);
$.ajax({
type:"POST",
url: url,
data: data,
dataType:'json',
async: false,
processData: false,
contentType: false,
cache: false,
success:function(returnData){
if(returnData.result == "success"){
alert("삭제되었습니다.");
document.listForm.prcsOrd.value = ""; //리스트 이동시 prcsOrd 초기화
linkPage(pageIndex);
}
},
error:function(request , status, error){
alert("code:"+request.status+"\n"+"message:"+request.responseText+"\n"+"error:"+error);
}
});
}
event.stopImmediatePropagation();
} */
</script>
<title>교육문의</title>
</head>
<body>
<form id="detailForm" name="detailForm" method="post">
<input type="hidden" id="prcsAplctPrdQnaOrd" name="prcsAplctPrdQnaOrd" value="" />
</form>
<form:form id="listForm" name="listForm" method="post" commandName="vEPrcsDetailVO" onsubmit="return false;">
<input type="hidden" name="pageIndex" value="<c:out value='${vEPrcsDetailVO.pageIndex}' default='1' />"/>
<input type="hidden" name="searchSortCnd" value="<c:out value="${vEPrcsDetailVO.searchSortCnd}" />" />
<input type="hidden" name="searchSortOrd" value="<c:out value="${vEPrcsDetailVO.searchSortOrd}" />" />
<input type="hidden" id="prcsOrd" name="prcsOrd" value="" />
<input type="hidden" id="prcsSortNo" name="prcsSortNo" value="" />
<div class="cont_wrap">
<div class="box">
<!-- cont_tit -->
<div class="cont_tit">
<h2>교육문의목록</h2>
<ul class="cont_nav">
<li class="home"><a href="/"><i></i></a></li>
<li>
<p>조건부기소유예관리</p>
</li>
<li><span class="cur_nav">교육문의목록</span></li>
</ul>
</div>
<!-- //cont_tit -->
<div class="cont">
<div class="tb_tit01">
<p>교육 문의 관리</p>
</div>
<!-- list_top -->
<div class="list_top search-only">
<div class="list_top_1">
<div class="util_right">
<ve:select codeId="VEA001" name="searchStatus" id="searchStatus" css="class='sel_type1'"
selectedValue="${vEPrcsDetailVO.searchStatus }" defaultValue=""
defaultText="전체"
/>
<div class="calendar_wrap">
<input type="text" class="calendar" title="시작일 선택" id="searchSmbtStartDt" name="searchSmbtStartDt" value="${vEPrcsDetailVO.searchSmbtStartDt}">
</div>
~
<div class="calendar_wrap">
<input type="text" class="calendar" title="종료일 선택" id="searchSmbtEndDt" name="searchSmbtEndDt" value="${vEPrcsDetailVO.searchSmbtEndDt}">
</div>
<input type="text" id="searchKeyword" name="searchKeyword" placeholder="과정명를 입력하세요." title="검색어 입력" class="search_input" value="<c:out value='${vEEduAplctVO.searchFullName}'/>">
<button type="button" class="btn_type08" onclick="fncGoList(); return false;">검색</button>
<button class="btn_type03" onclick="fncReset(this); return false;">초기화</button>
</div>
</div>
</div>
<div class="list_util">
<p class="list_util_p"><span><c:out value="${paginationInfo.totalRecordCount}" /></span>건의 접수가 검색되었습니다.</p>
<div>
<select class="sel_type1" name="pageUnit" id="pageUnit" onchange="linkPage(1);" title="줄 선택" style="width: 140px" class="sel_type1">
<option value='10' <c:if test="${vEPrcsDetailVO.pageUnit == '10' or vEPrcsDetailVO.pageUnit == ''}">selected</c:if>>10줄</option>
<option value='20' <c:if test="${vEPrcsDetailVO.pageUnit == '20'}">selected</c:if>>20줄</option>
<option value='30' <c:if test="${vEPrcsDetailVO.pageUnit == '30'}">selected</c:if>>30줄</option>
<option value='100' <c:if test="${vEPrcsDetailVO.pageUnit == '100'}">selected</c:if>>100줄</option>
</select>
<%--<button type="button" class="btn_down_excel">엑셀 다운로드</button>--%>
</div>
</div>
<!-- //list_top -->
<!-- list -->
<div class="tb_type01">
<table>
<colgroup>
<col style="width: 20%">
<col style="width: 10%">
<col style="width: auto">
<col style="width: 10%">
<col style="width: 10%">
</colgroup>
<thead>
<tr>
<th>질문자ID</th>
<th>질문자이름</th>
<th>질문내용</th>
<th>답변상태</th>
<th>질문일시</th>
<th>답변일시</th>
</tr>
</thead>
<tbody>
<c:forEach var="list" items="${list}" varStatus="status">
<tr class="listCount">
<td>
<c:out value='${list.qnaRegist }'/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd}"/>');" style="cursor:pointer;">
<c:out value='${list.mberNm}'/>
</td>
<td onclick="fncGoDetail('<c:out value="${list.prcsAplctPrdQnaOrd}"/>');" style="cursor:pointer;">
<c:out value='${list.qnaCn}'/>
</td>
<td>
<c:choose>
<c:when test="${empty list.qnaAnswerCn }">
미완료
</c:when>
<c:otherwise>
완료
</c:otherwise>
</c:choose>
</td>
<td>
<c:out value='${list.frstRegistPnttm }'/>
</td>
<td>
<c:choose>
<c:when test="${empty list.lastUpdtPnttm }">
-
</c:when>
<c:otherwise>
<c:out value='${list.lastUpdtPnttm }'/>
</c:otherwise>
</c:choose>
</td>
</tr>
</c:forEach>
<c:if test="${empty list}">
<tr><td colspan="5"><spring:message code="common.nodata.msg" /></td></tr>
</c:if>
</tbody>
</table>
</div>
<!-- //list -->
<!-- page -->
<div class="page">
<ui:pagination paginationInfo = "${paginationInfo}" type="image" jsFunction="linkPage" />
</div>
<div class="btn_wrap btn_layout01">
<div class="btn_left">
</div>
<div class="btn_center">
</div>
<div class="btn_right">
</div>
</div>
<!-- //page -->
</div>
</div>
</div>
<!-- //cont -->
<!-- //cont -->
</form:form>
</body>
</html>

View File

@ -139,11 +139,11 @@
<th scope="row">답변일시</th> <th scope="row">답변일시</th>
<td> <td>
<c:choose> <c:choose>
<c:when test="${empty list.lastUpdtPnttm }"> <c:when test="${empty info.lastUpdtPnttm }">
- -
</c:when> </c:when>
<c:otherwise> <c:otherwise>
<c:out value='${list.lastUpdtPnttm }'/> <c:out value='${info.lastUpdtPnttm }'/>
</c:otherwise> </c:otherwise>
</c:choose> </c:choose>
</td> </td>