diff --git a/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java b/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java
new file mode 100644
index 00000000..882fe135
--- /dev/null
+++ b/src/main/java/egovframework/com/cmm/service/impl/EgovComAbstractDAO.java
@@ -0,0 +1,306 @@
+/**
+ *
+ */
+package egovframework.com.cmm.service.impl;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.Resource;
+import org.apache.ibatis.session.ResultHandler;
+import org.apache.ibatis.session.RowBounds;
+import org.apache.ibatis.session.SqlSessionFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import egovframework.rte.psl.dataaccess.EgovAbstractMapper;
+/**
+ * EgovComAbstractDAO.java 클래스
+ *
+ * @author 서준식
+ * @since 2011. 9. 23.
+ * @version 1.0
+ * @see
+ *
+ *
+ * << 개정이력(Modification Information) >>
+ *
+ * 수정일 수정자 수정내용
+ * ------- ------------- ----------------------
+ * 2011. 9. 23. 서준식 최초 생성
+ * 2016. 5. 11. 장동한 myBatis 방식 적용
+ *
+ */
+public abstract class EgovComAbstractDAO extends EgovAbstractMapper{
+
+ private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
+
+ @Resource(name="egov.sqlSession")
+ public void setSqlSessionFactory(SqlSessionFactory sqlSession) {
+ super.setSqlSessionFactory(sqlSession);
+ }
+
+ /**
+ * 입력 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 입력 처리 SQL mapping 쿼리 ID
+ *
+ * @return DBMS가 지원하는 경우 insert 적용 결과 count
+ */
+ @Override
+ public int insert(String queryId) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().insert(queryId);
+ }
+
+ /**
+ * 입력 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 입력 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 입력 처리 SQL mapping 입력 데이터를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ *
+ * @return DBMS가 지원하는 경우 insert 적용 결과 count
+ */
+ @Override
+ public int insert(String queryId, Object parameterObject) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().insert(queryId, parameterObject);
+ }
+
+ /**
+ * 수정 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 수정 처리 SQL mapping 쿼리 ID
+ *
+ * @return DBMS가 지원하는 경우 update 적용 결과 count
+ */
+ @Override
+ public int update(String queryId) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().update(queryId);
+ }
+
+ /**
+ * 수정 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 수정 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 수정 처리 SQL mapping 입력 데이터(key 조건 및 변경 데이터)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ *
+ * @return DBMS가 지원하는 경우 update 적용 결과 count
+ */
+ @Override
+ public int update(String queryId, Object parameterObject) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().update(queryId, parameterObject);
+ }
+
+ /**
+ * 삭제 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 삭제 처리 SQL mapping 쿼리 ID
+ *
+ * @return DBMS가 지원하는 경우 delete 적용 결과 count
+ */
+ @Override
+ public int delete(String queryId) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().delete(queryId);
+ }
+
+ /**
+ * 삭제 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 삭제 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 삭제 처리 SQL mapping 입력 데이터(일반적으로 key 조건)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ *
+ * @return DBMS가 지원하는 경우 delete 적용 결과 count
+ */
+ @Override
+ public int delete(String queryId, Object parameterObject) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().delete(queryId, parameterObject);
+ }
+
+ //CHECKSTYLE:OFF
+ /**
+ * 명명규칙에 맞춰 selectOne()로 변경한다.
+ * @deprecated select() 메소드로 대체
+ *
+ * @see EgovAbstractMapper.selectOne()
+ */
+ //CHECKSTYLE:ON
+ @Deprecated
+ public Object selectByPk(String queryId, Object parameterObject) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectOne(queryId, parameterObject);
+ }
+
+ /**
+ * 단건조회 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 단건 조회 처리 SQL mapping 쿼리 ID
+ *
+ * @return 결과 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 단일 결과 객체(보통 VO 또는 Map)
+ */
+ @Override
+ public T selectOne(String queryId) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectOne(queryId);
+ }
+
+ /**
+ * 단건조회 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 단건 조회 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 단건 조회 처리 SQL mapping 입력 데이터(key)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ *
+ * @return 결과 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 단일 결과 객체(보통 VO 또는 Map)
+ */
+ @Override
+ public T selectOne(String queryId, Object parameterObject) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectOne(queryId, parameterObject);
+ }
+
+ /**
+ * 결과 목록을 Map 을 변환한다.
+ * 모든 구문이 파라미터를 필요로 하지는 않기 때문에, 파라미터 객체를 요구하지 않는 형태로 오버로드되었다.
+ *
+ * @param queryId - 단건 조회 처리 SQL mapping 쿼리 ID
+ * @param mapKey - 결과 객체의 프로퍼티 중 하나를 키로 사용
+ *
+ * @return 결과 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 단일 결과 객체(보통 VO 또는 Map)의 Map
+ */
+ @Override
+ public Map selectMap(String queryId, String mapKey) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectMap(queryId, mapKey);
+ }
+
+ /**
+ * 결과 목록을 Map 을 변환한다.
+ * 모든 구문이 파라미터를 필요로 하지는 않기 때문에, 파라미터 객체를 요구하지 않는 형태로 오버로드되었다.
+ *
+ * @param queryId - 단건 조회 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 맵 조회 처리 SQL mapping 입력 데이터(조회 조건)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ * @param mapKey - 결과 객체의 프로퍼티 중 하나를 키로 사용
+ *
+ * @return 결과 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 단일 결과 객체(보통 VO 또는 Map)의 Map
+ */
+ @Override
+ public Map selectMap(String queryId, Object parameterObject, String mapKey) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectMap(queryId, parameterObject, mapKey);
+ }
+
+ /**
+ * 결과 목록을 Map 을 변환한다.
+ * 모든 구문이 파라미터를 필요로 하지는 않기 때문에, 파라미터 객체를 요구하지 않는 형태로 오버로드되었다.
+ *
+ * @param queryId - 단건 조회 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 맵 조회 처리 SQL mapping 입력 데이터(조회 조건)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ * @param mapKey - 결과 객체의 프로퍼티 중 하나를 키로 사용
+ * @param rowBounds - 특정 개수 만큼의 레코드를 건너띄게 함
+ *
+ * @return 결과 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 단일 결과 객체(보통 VO 또는 Map)의 Map
+ */
+ @Override
+ public Map selectMap(String queryId, Object parameterObject, String mapKey, RowBounds rowBounds) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectMap(queryId, parameterObject, mapKey, rowBounds);
+ }
+
+ //CHECKSTYLE:OFF
+ /**
+ * 명명규칙에 맞춰 selectList()로 변경한다.
+ *
+ * @see EgovAbstractMapper.selectList()
+ * @deprecated List> 메소드로 대체
+ */
+ //CHECKSTYLE:ON
+ @Deprecated
+ public List> list(String queryId, Object parameterObject) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectList(queryId, parameterObject);
+ }
+
+ /**
+ * 리스트 조회 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 리스트 조회 처리 SQL mapping 쿼리 ID
+ *
+ * @return 결과 List 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 결과 객체(보통 VO 또는 Map)의 List
+ */
+ @Override
+ public List selectList(String queryId) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectList(queryId);
+ }
+
+ /**
+ * 리스트 조회 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 리스트 조회 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 리스트 조회 처리 SQL mapping 입력 데이터(조회 조건)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ *
+ * @return 결과 List 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 결과 객체(보통 VO 또는 Map)의 List
+ */
+ @Override
+ public List selectList(String queryId, Object parameterObject) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectList(queryId, parameterObject);
+ }
+
+ /**
+ * 리스트 조회 처리 SQL mapping 을 실행한다.
+ *
+ * @param queryId - 리스트 조회 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 리스트 조회 처리 SQL mapping 입력 데이터(조회 조건)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ * @param rowBounds - 특정 개수 만큼의 레코드를 건너띄게 함
+ *
+ * @return 결과 List 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 결과 객체(보통 VO 또는 Map)의 List
+ */
+ @Override
+ public List selectList(String queryId, Object parameterObject, RowBounds rowBounds) {
+ LOGGER.debug("queryId = "+queryId);
+ return getSqlSession().selectList(queryId, parameterObject, rowBounds);
+ }
+
+ /**
+ * 부분 범위 리스트 조회 처리 SQL mapping 을 실행한다.
+ * (부분 범위 - pageIndex 와 pageSize 기반으로 현재 부분 범위 조회를 위한 skipResults, maxResults 를 계산하여 ibatis 호출)
+ *
+ * @param queryId - 리스트 조회 처리 SQL mapping 쿼리 ID
+ * @param parameterObject - 리스트 조회 처리 SQL mapping 입력 데이터(조회 조건)를 세팅한 파라메터 객체(보통 VO 또는 Map)
+ * @param pageIndex - 현재 페이지 번호
+ * @param pageSize - 한 페이지 조회 수(pageSize)
+ *
+ * @return 부분 범위 결과 List 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 부분 범위 결과 객체(보통 VO 또는 Map) List
+ */
+ @Override
+ public List> listWithPaging(String queryId, Object parameterObject, int pageIndex, int pageSize) {
+ LOGGER.debug("queryId = "+queryId);
+ int skipResults = pageIndex * pageSize;
+ //int maxResults = (pageIndex * pageSize) + pageSize;
+
+ RowBounds rowBounds = new RowBounds(skipResults, pageSize);
+
+ return getSqlSession().selectList(queryId, parameterObject, rowBounds);
+ }
+
+ /**
+ * SQL 조회 결과를 ResultHandler를 이용해서 출력한다.
+ * ResultHandler를 상속해 구현한 커스텀 핸들러의 handleResult() 메서드에 따라 실행된다.
+ *
+ * @param queryId - 리스트 조회 처리 SQL mapping 쿼리 ID
+ * @param handler - 조회 결과를 제어하기 위해 구현한 ResultHandler
+ * @return
+ *
+ * @return 결과 List 객체 - SQL mapping 파일에서 지정한 resultType/resultMap 에 의한 결과 객체(보통 VO 또는 Map)의 List
+ */
+ @Override
+ public void listToOutUsingResultHandler(String queryId, ResultHandler handler) {
+ LOGGER.debug("queryId = "+queryId);
+ getSqlSession().select(queryId, handler);
+ }
+}
diff --git a/src/main/java/nlib/bbs/web/BoardController.java b/src/main/java/nlib/bbs/web/BoardController.java
index fb9d74af..a83c88ae 100644
--- a/src/main/java/nlib/bbs/web/BoardController.java
+++ b/src/main/java/nlib/bbs/web/BoardController.java
@@ -68,7 +68,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/listNotices.do")
- public String listNotices(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String listNotices(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
@@ -82,24 +82,18 @@ public class BoardController extends NlibCommonController
log.debug("listNotices > articleType = " + articleType);
log.debug("listNotices > message = " + message);
- DataApiReqVO reqVOforCode = new DataApiReqVO();
- reqVOforCode.setAuthKey(createAuthKey(req, authentication));
- reqVOforCode.setPageIndex(0);
- reqVOforCode.setPageSize(0);
// 페이징 사이즈 코드 목록 조회
- reqVOforCode.addInfoItem("codeUpperId", "PAGE_SIZE");
- DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforCode);
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE");
// 공지사항 유형 코드 목록 조회
- reqVOforCode.addInfoItem("codeUpperId", "ARTICLE_TYPE");
- DataApiResVO resVOforArticleType = codeService.listCodes(reqVOforCode);
+ List> articleTypeCodes = codeService.listCodes("ARTICLE_TYPE");
// 반환 정보
model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", resVOforPageSize.getList());
- model.addAttribute("articleTypeCodes", resVOforArticleType.getList());
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
+ model.addAttribute("articleTypeCodes", articleTypeCodes);
model.addAttribute("articleType" , articleType);
model.addAttribute("message" , message);
@@ -114,7 +108,7 @@ public class BoardController extends NlibCommonController
*/
@RequestMapping(value="/board/listNoticesAjax.do")
public ResponseEntity listNoticesAjax(HttpServletRequest req,
- Authentication authentication, @RequestBody Map paramMap) {
+ Authentication authentication, @RequestBody Map paramMap) throws Exception {
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
@@ -159,7 +153,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/selectNotice.do")
- public String selectNotice(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String selectNotice(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
// 목록 이동시 전달할 매개변수
String searchKeyword = paramMap.get("searchKeyword");
@@ -212,7 +206,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/listFAQs.do")
- public String listFAQs(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String listFAQs(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
@@ -230,20 +224,20 @@ public class BoardController extends NlibCommonController
reqVOforCode.setAuthKey(createAuthKey(req, authentication));
reqVOforCode.setPageIndex(0);
reqVOforCode.setPageSize(0);
+
+
// 페이징 사이즈 코드 목록 조회
- reqVOforCode.addInfoItem("codeUpperId", "PAGE_SIZE");
- DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforCode);
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE");
// 유형 코드 목록 조회
- reqVOforCode.addInfoItem("codeUpperId", "FAQ_TYPE");
- DataApiResVO resVOforFaqType = codeService.listCodes(reqVOforCode);
+ List> articleTypeCodes = codeService.listCodes("FAQ_TYPE");
// 반환 정보
model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", resVOforPageSize.getList());
- model.addAttribute("faqTypeCodes" , resVOforFaqType.getList());
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
+ model.addAttribute("faqTypeCodes" , articleTypeCodes);
model.addAttribute("message" , message);
model.addAttribute("faqType" , faqType);
model.addAttribute("faqType" , faqType);
@@ -260,7 +254,7 @@ public class BoardController extends NlibCommonController
*/
@RequestMapping(value="/board/listFAQsAjax.do")
public ResponseEntity listFAQsAjax(HttpServletRequest req,
- Authentication authentication, @RequestBody Map paramMap) {
+ Authentication authentication, @RequestBody Map paramMap) throws Exception {
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
@@ -307,7 +301,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/selectFAQAjax.do")
- public ResponseEntity selectFAQAjax(HttpServletRequest req, Authentication authentication, @RequestBody Map paramMap) {
+ public ResponseEntity selectFAQAjax(HttpServletRequest req, Authentication authentication, @RequestBody Map paramMap) throws Exception {
// 게시물 번호
String articleNo = paramMap.get("articleNo");
@@ -336,7 +330,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/listQnAs.do")
- public String listQnAs(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String listQnAs(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
@@ -348,19 +342,15 @@ public class BoardController extends NlibCommonController
log.debug("listQnAs > searchKeyword = " + searchKeyword);
log.debug("listQnAs > message = " + message);
+
// 페이징 사이즈 코드 목록 조회
- DataApiReqVO reqVOforPageSize = new DataApiReqVO();
- reqVOforPageSize.setAuthKey(createAuthKey(req, authentication));
- reqVOforPageSize.setPageIndex(pageIndex);
- reqVOforPageSize.setPageSize(pageSize);
- reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE");
- DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize);
+ List> pageSizeCodes = codeService.listCodes("PAGE_SIZE");
// 반환 정보
model.addAttribute("pageIndex" , pageIndex);
model.addAttribute("pageSize" , pageSize);
model.addAttribute("searchKeyword", searchKeyword);
- model.addAttribute("pageSizeCodes", resVOforPageSize.getList());
+ model.addAttribute("pageSizeCodes", pageSizeCodes);
model.addAttribute("message" , message);
return "nlib/board/listQnAs";
@@ -374,7 +364,7 @@ public class BoardController extends NlibCommonController
*/
@RequestMapping(value="/board/listQnAsAjax.do")
public ResponseEntity listQnAsAjax(HttpServletRequest req,
- Authentication authentication, @RequestBody Map paramMap) {
+ Authentication authentication, @RequestBody Map paramMap) throws Exception {
String searchKeyword = paramMap.get("searchKeyword");
String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1");
@@ -418,7 +408,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/selectQnA.do")
- public String selectQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String selectQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
// 목록 이동시 전달할 매개변수
String searchKeyword = paramMap.get("searchKeyword");
@@ -470,7 +460,7 @@ public class BoardController extends NlibCommonController
@RequestMapping("/board/insertQnAForm.do")
public String insertQnAForm(HttpServletRequest req, Authentication authentication
, @RequestParam Map paramMap
- , ModelMap model) {
+ , ModelMap model) throws Exception {
// 입력 매개변수 출력 설정
addParamsToModel(paramMap, model);
@@ -492,7 +482,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/insertQnA.do")
- public String insertQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String insertQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
NlibLoginVO loginVO = getNlibLoginVO(authentication);
@@ -565,7 +555,7 @@ public class BoardController extends NlibCommonController
}
@RequestMapping("/board/verifyWriter.do")
- public String verifyWriter(HttpServletRequest req) {
+ public String verifyWriter(HttpServletRequest req) throws Exception {
return "nlib/board/verifyWriter";
}
@@ -579,7 +569,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/updateQnAForm.do")
- public String updateQnAForm(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String updateQnAForm(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
// 목록 이동시 전달할 매개변수
String searchKeyword = paramMap.get("searchKeyword");
@@ -657,7 +647,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/updateQnA.do")
- public String updateQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String updateQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
log.debug("paramMap > " + paramMap);
@@ -758,7 +748,7 @@ public class BoardController extends NlibCommonController
* @return
*/
@RequestMapping("/board/deleteQnA.do")
- public String deleteQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) {
+ public String deleteQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) throws Exception {
String message = null;
diff --git a/src/main/java/nlib/cmm/service/CodeService.java b/src/main/java/nlib/cmm/service/CodeService.java
index c6f9fcfc..1ab2aea6 100644
--- a/src/main/java/nlib/cmm/service/CodeService.java
+++ b/src/main/java/nlib/cmm/service/CodeService.java
@@ -1,6 +1,9 @@
package nlib.cmm.service;
+import java.util.HashMap;
+import java.util.List;
+
import org.springframework.stereotype.Service;
import nlib.restful.service.DataApiReqVO;
@@ -8,6 +11,6 @@ import nlib.restful.service.DataApiResVO;
public interface CodeService
{
- public DataApiResVO listCodes(DataApiReqVO reqVO);
+ public List> listCodes(String iCodeId) throws Exception;
}
\ No newline at end of file
diff --git a/src/main/java/nlib/cmm/service/impl/CodeDAO.java b/src/main/java/nlib/cmm/service/impl/CodeDAO.java
index abbe2118..f6a367a1 100644
--- a/src/main/java/nlib/cmm/service/impl/CodeDAO.java
+++ b/src/main/java/nlib/cmm/service/impl/CodeDAO.java
@@ -1,28 +1,12 @@
-
-package nlib.cmm.service.impl;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Repository;
-
-import nlib.cmm.web.MainController;
-import nlib.restful.DataApi;
-import nlib.restful.service.DataApiReqVO;
-import nlib.restful.service.DataApiResVO;
-
-@Repository("codeDAO")
-public class CodeDAO extends DataApi
-{
- private static final Logger log = LoggerFactory.getLogger(CodeDAO.class);
-
- /**
- * 주 자원의 URI
- */
- public static final String RESOURCE_URI = "/uac/service/code/list";
-
- public DataApiResVO listCodes(DataApiReqVO reqVO) {
- reqVO.setReqUrl(RESOURCE_URI + "/" + reqVO.getInfoItem("codeUpperId"));
- return get(reqVO);
- }
-
-}
\ No newline at end of file
+package nlib.cmm.service.impl;
+
+import java.util.HashMap;
+import java.util.List;
+
+import egovframework.rte.psl.dataaccess.mapper.Mapper;
+
+@Mapper("codeDAO")
+public interface CodeDAO {
+
+ public List> listCodes(String iCodeId) throws Exception;
+}
diff --git a/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java b/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java
index 4f0f8394..aea75c02 100644
--- a/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java
+++ b/src/main/java/nlib/cmm/service/impl/CodeServiceImpl.java
@@ -1,6 +1,8 @@
-
package nlib.cmm.service.impl;
+import java.util.HashMap;
+import java.util.List;
+
import javax.annotation.Resource;
import org.slf4j.Logger;
@@ -9,8 +11,7 @@ import org.springframework.stereotype.Service;
import egovframework.rte.fdl.cmmn.EgovAbstractServiceImpl;
import nlib.cmm.service.CodeService;
-import nlib.restful.service.DataApiReqVO;
-import nlib.restful.service.DataApiResVO;
+import nlib.util.StringUtil;
@Service("codeService")
public class CodeServiceImpl extends EgovAbstractServiceImpl implements CodeService
@@ -20,11 +21,10 @@ public class CodeServiceImpl extends EgovAbstractServiceImpl implements CodeServ
@Resource(name="codeDAO")
private CodeDAO codeDAO;
- /*public DataApiResVO listCodes(DataApiReqVO reqVO) {
- return codeDAO.listCodes(reqVO);
- }*/
-
- public DataApiResVO listCodes(DataApiReqVO reqVO) {
- return codeDAO.listCodes(reqVO);
+ public List> listCodes(String iCodeId) throws Exception {
+
+ if(StringUtil.isEmpty(iCodeId)) return null;
+
+ return codeDAO.listCodes(iCodeId.toUpperCase());
}
}
\ No newline at end of file
diff --git a/src/main/java/nlib/cmm/web/CodeController.java b/src/main/java/nlib/cmm/web/CodeController.java
index 7349b666..b7faa99f 100644
--- a/src/main/java/nlib/cmm/web/CodeController.java
+++ b/src/main/java/nlib/cmm/web/CodeController.java
@@ -1,6 +1,7 @@
package nlib.cmm.web;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
@@ -8,17 +9,13 @@ import javax.servlet.http.HttpServletRequest;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.core.Authentication;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
import nlib.cmm.NlibCommonController;
import nlib.cmm.service.CodeService;
-import nlib.restful.service.DataApiReqVO;
-import nlib.restful.service.DataApiResVO;
-import nlib.util.StringUtil;
@Controller
public class CodeController extends NlibCommonController {
@@ -28,60 +25,16 @@ public class CodeController extends NlibCommonController {
@Resource(name="codeService")
private CodeService codeService;
- @RequestMapping(value="/code/listCodesAjax.do")
- public ResponseEntity listCodeAjax(HttpServletRequest req,
- Authentication authentication, @RequestBody Map paramMap) {
+ @RequestMapping( {"/code/listCodes.do"} )
+ public String setContent(HttpServletRequest req, @RequestParam Map paramMap, ModelMap model) throws Exception {
- String codeSearchKeyword = paramMap.get("codeSearchKeyword");
- String codePageIndex = paramMap.get("codePageIndex");
- String codePageSize = paramMap.get("codePageSize");
- String codeUpperId = paramMap.get("codeUpperId");
+ String lCodeId = paramMap.get("lCodeId");
- log.debug("listCodeAjax > codeSearchKeyword = " + codeSearchKeyword);
- log.debug("listCodeAjax > codePageIndex = " + codePageIndex);
- log.debug("listCodeAjax > codePageSize = " + codePageSize);
- log.debug("listCodeAjax > codeUpperId = " + codeUpperId);
-
- //-------------------------------
- // REQ VO 구성
- //-------------------------------
- DataApiReqVO reqVO = new DataApiReqVO();
- reqVO.setAuthKey(createAuthKey(req, authentication));
- reqVO.setPageIndex(codePageIndex);
- reqVO.setPageSize(codePageSize);
-
- // 추가 정보 설정
- reqVO.addInfoItem("searchKeyword", codeSearchKeyword);
- reqVO.addInfoItem("codeUpperId", codeUpperId);
-
- // 요청
- DataApiResVO resVO = codeService.listCodes(reqVO);
-
- //-------------------------------
- // JSON변환 응답 처리
- //-------------------------------
- // JS-GRID 페이징 처리를 포함한 응답값 처리
- // (1) 페이징을 서버단에서 처리하는 경우 (pagingloading = false)
- // {data: [{...}],
- // itemsCount: 255
- // }
- // (2) 페이징을 클라이언트에서 처리하는 경우 (pagingloading = true)
- // {data: [{...}],
- // itemsCount: 255
- // }
-
- // 코드 페이징 사이즈값이 없거나 0인 경우, 서버에서 페이징 처리하지 않고 전체 데이터 전송
- if(StringUtil.isEmpty(codePageSize) || Integer.parseInt(codePageSize) <= 0) {
- return makeResponseEntityJson(resVO.getList());
- }
-
- // 코드 페이징 처리되는 경우
- HashMap retMap = new HashMap();
- retMap.put("data", resVO.getList());
- retMap.put("itemsCount", resVO.getRecordTotCount());
-
- return makeResponseEntityJson(retMap);
+ List> resultList = codeService.listCodes(lCodeId);
+ model.addAttribute("resultList", resultList);
+ model.addAttribute("lCodeId", lCodeId);
+
+ return "nlib/code/listCodes";
}
-
}
diff --git a/src/main/java/nlib/security/SpringSecurityConfig.java b/src/main/java/nlib/security/SpringSecurityConfig.java
index 1ead7ed9..5ccd6d36 100644
--- a/src/main/java/nlib/security/SpringSecurityConfig.java
+++ b/src/main/java/nlib/security/SpringSecurityConfig.java
@@ -57,6 +57,7 @@ public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers("/board/**")
.antMatchers("/inform/**")
.antMatchers("/alert/**")
+ .antMatchers("/code/**")
;
}
diff --git a/src/main/resources/egovframework/egovProps/globals.properties b/src/main/resources/egovframework/egovProps/globals.properties
index 5693f068..029fd479 100644
--- a/src/main/resources/egovframework/egovProps/globals.properties
+++ b/src/main/resources/egovframework/egovProps/globals.properties
@@ -23,6 +23,11 @@ Globals.DbType = maria
#MariaDB
# hosts \ud30c\uc77c\uc5d0 \uc120 \ub4f1\ub85d \ud544\uc694 : 210.181.197.70 nlib-db.nculture.org
+# [\ub85c\uceecPC DB\uc124\uc815]
+# > create database uac_cltr_db;
+# > create user 'uac_cltr' identified by 'uac_cltr';
+# > grant all privileges on uac_cltr_db.* to 'uac_cltr';
+# > flush privileges;
Globals.maria.DriverClassName=org.mariadb.jdbc.Driver
Globals.maria.Url=jdbc:mariadb://nlib-db.nculture.org:3306/uac_cltr_db
Globals.maria.UserName = uac_cltr
diff --git a/src/main/resources/egovframework/mapper/config/mapper-config.xml b/src/main/resources/egovframework/mapper/config/mapper-config.xml
index 3c484287..17568b6e 100644
--- a/src/main/resources/egovframework/mapper/config/mapper-config.xml
+++ b/src/main/resources/egovframework/mapper/config/mapper-config.xml
@@ -13,9 +13,6 @@
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/egovframework/mapper/nlib/cmm/CMM_CODE_SQL.xml b/src/main/resources/egovframework/mapper/nlib/cmm/CMM_CODE_SQL.xml
index b957d4d3..88019a4c 100644
--- a/src/main/resources/egovframework/mapper/nlib/cmm/CMM_CODE_SQL.xml
+++ b/src/main/resources/egovframework/mapper/nlib/cmm/CMM_CODE_SQL.xml
@@ -1,169 +1,18 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/egovframework/spring/context-datasource.xml b/src/main/resources/egovframework/spring/context-datasource.xml
new file mode 100644
index 00000000..e5980c10
--- /dev/null
+++ b/src/main/resources/egovframework/spring/context-datasource.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+ classpath:/egovframework/egovProps/globals.properties
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/main/resources/egovframework/spring/context-mapper.xml b/src/main/resources/egovframework/spring/context-mapper.xml
index 7222d888..c38599a1 100644
--- a/src/main/resources/egovframework/spring/context-mapper.xml
+++ b/src/main/resources/egovframework/spring/context-mapper.xml
@@ -1,6 +1,9 @@
-
+
@@ -9,17 +12,23 @@
-
- classpath:/egovframework/mapper/com/**/*_${Globals.DbType}.xml
+ classpath:/egovframework/mapper/nlib/**/*.xml
-
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml
index 3b82c206..52f9ea21 100644
--- a/src/main/resources/log4j2.xml
+++ b/src/main/resources/log4j2.xml
@@ -6,10 +6,10 @@
-
+
-
+
diff --git a/src/main/webapp/WEB-INF/jsp/nlib/code/listCodes.jsp b/src/main/webapp/WEB-INF/jsp/nlib/code/listCodes.jsp
new file mode 100644
index 00000000..382544fc
--- /dev/null
+++ b/src/main/webapp/WEB-INF/jsp/nlib/code/listCodes.jsp
@@ -0,0 +1,83 @@
+<%
+/**
+ *
+ * @Class Name : listCodes.jsp
+ *
+ * @Description : 묻고답하기 목록을 조회한다.
+ *
+ *
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ *
+ *
+ * @ ------------ -------- ---------------------------
+ * @ 수정일 수정자 수정내용
+ * @ ------------ -------- ---------------------------
+ * @ 2021. 8. 5. KNKIM 최초 생성
+ *
+ *
+ * @author 이씨플라자 * DIGITALSHIP KNKIM
+ * @since 2021. 8. 5.
+ * @version 1.0
+ *
+ */
+ %>
+<%@ page language="java" contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="ui" uri="http://egovframework.gov/ctl/ui" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ 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" %>
+
+공통코드
+
+
+
+
+${pageTitle}
+
+
+
+
+
+
+${pageTitle }
+
+메시지 : ${message}
+
+
+
+
+
+
+ | 코드 |
+ 코드명 |
+
+
+
+ |
+ |
+
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp
index 4927b9a9..84732014 100644
--- a/src/main/webapp/WEB-INF/tiles/inc/menu.jsp
+++ b/src/main/webapp/WEB-INF/tiles/inc/menu.jsp
@@ -26,6 +26,7 @@
QR코드
암호화
프로퍼티갱신
+ 코드조회