diff --git a/data/dataxml/uac.service.board.faq.list_GET.xml b/data/dataxml/uac.service.board.faq.list_GET.xml new file mode 100644 index 00000000..4e8b346d --- /dev/null +++ b/data/dataxml/uac.service.board.faq.list_GET.xml @@ -0,0 +1,37 @@ + + + + 1 + 15 + 125 + + 1 + 질문있습니다. + Q + 101 + 회원가입 + + + 2 + 질문있습니다. + Q + 101 + 회원가입 + + + 3 + 질문있습니다. + Q + 101 + 회원가입 + + + 4 + 질문있습니다. + Q + 101 + 회원가입 + + + + diff --git a/data/dataxml/uac.service.board.faq_GET.xml b/data/dataxml/uac.service.board.faq_GET.xml new file mode 100644 index 00000000..05b554e1 --- /dev/null +++ b/data/dataxml/uac.service.board.faq_GET.xml @@ -0,0 +1,13 @@ + + + + + 5 + 101 + 회원가입 + FAQ 테스트 + 15 + 2021-07-19 + 정확한 답변을 드립니다. + + diff --git a/data/dataxml/uac.service.board.notice.list_GET.xml b/data/dataxml/uac.service.board.notice.list_GET.xml new file mode 100644 index 00000000..fb6035cc --- /dev/null +++ b/data/dataxml/uac.service.board.notice.list_GET.xml @@ -0,0 +1,81 @@ + + + 1 + 15 + 125 + + Y + 1 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + + + Y + 2 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + + + Y + 3 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + + + 4 + 질문있습니다. + 공길동 + 102 + 2021-07-19 + + + 5 + 질문있습니다. + 공길동 + 102 + 2021-07-19 + + + 6 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + Y + + + 7 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + + + 8 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + + + 9 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + + + 10 + 질문있습니다. + 공길동 + 101 + 2021-07-19 + + + diff --git a/data/dataxml/uac.service.board.notice_GET.xml b/data/dataxml/uac.service.board.notice_GET.xml new file mode 100644 index 00000000..12e54626 --- /dev/null +++ b/data/dataxml/uac.service.board.notice_GET.xml @@ -0,0 +1,45 @@ + + + + + 5 + 101 + 공지 + 공지사항 테스트 + 9uCh4qxBlFqap/+KiqoM68EqO8yYGpKa1c+BCgkOEa4= + + 15 + 2021-07-19 + 김아무 + 답변완료 + myid@digitalship.co.kr + 질문이 있습니다. + F20210802052436092_0A84FA72B1B1478ABEB285536B81B587=엑셀샘플.xlsx;F20210802052436092_F1DB407F181A4B8AAA0859E56D4EDB57=엑셀샘플2.xlsx; + 이렇게 답변 드립니다. + F20210802052436092_0A84FA72B1B1478ABEB285536B81B587=엑셀샘플3.xlsx;F20210802052436092_F1DB407F181A4B8AAA0859E56D4EDB57=엑셀샘플4.xlsx; + + + 1 + 1 + 2 + + 4 + 101 + 공지 + 이전의 글제목입니다. + 2021-07-19 + 김아무 + 답변완료 + + + 6 + 102 + 공지 + 다음의 글제목입니다. + 2021-07-20 + 홍아무 + 답변완료 + + + + diff --git a/data/dataxml/uac.service.board.qna.list_GET.xml b/data/dataxml/uac.service.board.qna.list_GET.xml index 67455e17..4e101c10 100644 --- a/data/dataxml/uac.service.board.qna.list_GET.xml +++ b/data/dataxml/uac.service.board.qna.list_GET.xml @@ -7,70 +7,70 @@ 1 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 2 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 3 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 4 질문있습니다. - 김길동 + 김길동 대기 2021-07-19 5 질문있습니다. - 김길동 + 김길동 대기 2021-07-19 6 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 7 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 8 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 9 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 10 질문있습니다. - 김길동 + 김길동 답변완료 2021-07-19 diff --git a/data/dataxml/uac.service.code.list.ARTICLE_TYPE_GET.xml b/data/dataxml/uac.service.code.list.ARTICLE_TYPE_GET.xml new file mode 100644 index 00000000..2d38cc39 --- /dev/null +++ b/data/dataxml/uac.service.code.list.ARTICLE_TYPE_GET.xml @@ -0,0 +1,17 @@ + + + 3 + + 101 + 공지 + + + 102 + 자료 + + + 103 + 모집 + + + diff --git a/data/dataxml/uac.service.code.list.FAQE_TYPE_GET.xml b/data/dataxml/uac.service.code.list.FAQE_TYPE_GET.xml new file mode 100644 index 00000000..0b3b1f02 --- /dev/null +++ b/data/dataxml/uac.service.code.list.FAQE_TYPE_GET.xml @@ -0,0 +1,17 @@ + + + 3 + + 101 + 회원가입 + + + 102 + 대출 + + + 103 + 열람 + + + diff --git a/src/main/java/nlib/bbs/service/BoardService.java b/src/main/java/nlib/bbs/service/BoardService.java index 1a19b390..e2b12a13 100644 --- a/src/main/java/nlib/bbs/service/BoardService.java +++ b/src/main/java/nlib/bbs/service/BoardService.java @@ -28,14 +28,29 @@ import nlib.restful.service.DataApiResVO; */ public interface BoardService { + /** + * 공지사항 + * + * @param reqVO + * @return + */ public DataApiResVO listNotices(DataApiReqVO reqVO); public DataApiResVO selectNotice(DataApiReqVO reqVO); + /** + * 자주하는질문 + * + * @param reqVO + * @return + */ public DataApiResVO listFAQs(DataApiReqVO reqVO); + + public DataApiResVO selectFAQ(DataApiReqVO reqVO); + /** - * 묻고답하기 목록 조회한다. + * 묻고답하기 * * @param reqVO * @return diff --git a/src/main/java/nlib/bbs/service/impl/BoardDAO.java b/src/main/java/nlib/bbs/service/impl/BoardDAO.java index 19550c74..6a032b4e 100644 --- a/src/main/java/nlib/bbs/service/impl/BoardDAO.java +++ b/src/main/java/nlib/bbs/service/impl/BoardDAO.java @@ -18,19 +18,28 @@ public class BoardDAO extends DataApi /** * 주 자원의 URI */ - public static final String RESOURCE_URI = "/uac/service/board/qna"; + public static final String RESOURCE_URI = "/uac/service/board"; public DataApiResVO listNotices(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/notice/list"); + return get(reqVO); } public DataApiResVO selectNotice(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/notice"); + return get(reqVO); } public DataApiResVO listFAQs(DataApiReqVO reqVO) { - return null; + reqVO.setReqUrl(RESOURCE_URI + "/faq/list"); + return get(reqVO); } + + public DataApiResVO selectFAQ(DataApiReqVO reqVO) { + reqVO.setReqUrl(RESOURCE_URI + "/faq"); + return get(reqVO); + } + /** * 묻고답하기 목록 조회한다. @@ -39,12 +48,12 @@ public class BoardDAO extends DataApi * @return */ public DataApiResVO listQnAs(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI + "/list"); + reqVO.setReqUrl(RESOURCE_URI + "/qna/list"); return get(reqVO); } public DataApiResVO selectQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI); + reqVO.setReqUrl(RESOURCE_URI + "/qna"); return get(reqVO); } @@ -53,17 +62,17 @@ public class BoardDAO extends DataApi } public DataApiResVO updateQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI); + reqVO.setReqUrl(RESOURCE_URI + "/qna"); return post(reqVO); } public DataApiResVO deleteQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI); + reqVO.setReqUrl(RESOURCE_URI + "/qna"); return delete(reqVO); } public DataApiResVO insertQnA(DataApiReqVO reqVO) { - reqVO.setReqUrl(RESOURCE_URI); + reqVO.setReqUrl(RESOURCE_URI + "/qna"); return put(reqVO); } diff --git a/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java b/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java index 1d827304..8631bb40 100644 --- a/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java +++ b/src/main/java/nlib/bbs/service/impl/BoardServiceImpl.java @@ -21,15 +21,19 @@ public class BoardServiceImpl implements BoardService public DataApiResVO listNotices(DataApiReqVO reqVO) { - return null; + return boardDAO.listNotices(reqVO); } public DataApiResVO selectNotice(DataApiReqVO reqVO) { - return null; + return boardDAO.selectNotice(reqVO); } public DataApiResVO listFAQs(DataApiReqVO reqVO) { - return null; + return boardDAO.listFAQs(reqVO); + } + + public DataApiResVO selectFAQ(DataApiReqVO reqVO) { + return boardDAO.selectFAQ(reqVO); } /* diff --git a/src/main/java/nlib/bbs/web/BoardController.java b/src/main/java/nlib/bbs/web/BoardController.java index 021648d6..518f2f93 100644 --- a/src/main/java/nlib/bbs/web/BoardController.java +++ b/src/main/java/nlib/bbs/web/BoardController.java @@ -62,41 +62,269 @@ public class BoardController extends NlibCommonController private AuthenticationManager authenticationManager; /** - * 공지사항 목록 조회한다. + * 공지사항 목록 화면을 표출한다. * * @param req * @return */ - @SuppressWarnings("deprecation") @RequestMapping("/board/listNotices.do") - public String listNotices(HttpServletRequest req) { + public String listNotices(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + String articleType = paramMap.get("articleType"); + String message = paramMap.get("message"); + + log.debug("listNotices > pageIndex = " + pageIndex); + log.debug("listNotices > pageSize = " + pageSize); + log.debug("listNotices > searchKeyword = " + searchKeyword); + 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); + // 공지사항 유형 코드 목록 조회 + reqVOforCode.addInfoItem("codeUpperId", "ARTICLE_TYPE"); + DataApiResVO resVOforArticleType = codeService.listCodes(reqVOforCode); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("pageSizeCodes", resVOforPageSize.getList()); + model.addAttribute("articleTypeCodes", resVOforArticleType.getList()); + model.addAttribute("articleType" , articleType); + model.addAttribute("message" , message); + return "nlib/board/listNotices"; } + /** + * 공지사항 목록 조회한다. + * + * @param req + * @return + */ + @RequestMapping(value="/board/listNoticesAjax.do") + public ResponseEntity listNoticesAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + String articleType = paramMap.get("articleType"); + + log.debug("listNoticesAjax > pageIndex = " + pageIndex); + log.debug("listNoticesAjax > pageSize = " + pageSize); + log.debug("listNoticesAjax > searchKeyword = " + searchKeyword); + log.debug("listNoticesAjax > articleType = " + articleType); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + reqVO.addInfoItem("articleType", articleType); + + // 요청 + DataApiResVO resVO = boardService.listNotices(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } + /** * 공지사항 상세 내용 조회한다. * @param req * @return */ @RequestMapping("/board/selectNotice.do") - public String selectNotice(HttpServletRequest req) { + public String selectNotice(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + + // 목록 이동시 전달할 매개변수 + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = paramMap.get("pageIndex"); + String pageSize = paramMap.get("pageSize"); + String articleType = paramMap.get("articleType"); + String message = paramMap.get("message"); + + // 게시물 번호 + String articleNo = paramMap.get("articleNo"); + + log.debug("selectNotice > pageIndex = " + pageIndex); + log.debug("selectNotice > pageSize = " + pageSize); + log.debug("selectNotice > searchKeyword = " + searchKeyword); + log.debug("selectNotice > articleNo = " + articleNo); + log.debug("selectNotice > message = " + message); + log.debug("selectNotice > articleType = " + articleType); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID + reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 + + // 요청 + DataApiResVO resVO = boardService.selectNotice(reqVO); + + // 반환 정보 + model.addAttribute("articleNo" , articleNo); + model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 + model.addAttribute("preArticle" , resVO.getList().get(0)); // 이전글 정보 + model.addAttribute("nextArticle" , resVO.getList().get(1)); // 다음글 정보 + model.addAttribute("message" , message); + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("articleType" , articleType); + return "nlib/board/selectNotice"; } + /** + * FAQ 목록 화면을 표출한다. + * + * @param req + * @return + */ + @RequestMapping("/board/listFAQs.do") + public String listFAQs(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + String message = paramMap.get("message"); + String faqType = paramMap.get("faqType"); + + log.debug("listFAQs > pageIndex = " + pageIndex); + log.debug("listFAQs > pageSize = " + pageSize); + log.debug("listFAQs > searchKeyword = " + searchKeyword); + log.debug("listFAQs > message = " + message); + log.debug("listFAQs > faqType = " + faqType); + + // 페이징 사이즈 코드 목록 조회 + DataApiReqVO reqVOforCode = new DataApiReqVO(); + reqVOforCode.setAuthKey(createAuthKey(req, authentication)); + reqVOforCode.setPageIndex(pageIndex); + reqVOforCode.setPageSize(pageSize); + reqVOforCode.addInfoItem("codeUpperId", "FAQ_TYPE"); + DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforCode); + + // 반환 정보 + model.addAttribute("pageIndex" , pageIndex); + model.addAttribute("pageSize" , pageSize); + model.addAttribute("searchKeyword", searchKeyword); + model.addAttribute("faqTypeCodes" , resVOforPageSize.getList()); + model.addAttribute("message" , message); + model.addAttribute("faqType" , faqType); + + return "nlib/board/listFAQs"; + } + + /** * FAQ 목록 조회한다. * * @param req * @return */ - @RequestMapping("/board/listFAQs.do") - public String listFAQs(HttpServletRequest req) { - return "nlib/board/listFAQs"; + @RequestMapping(value="/board/listFAQsAjax.do") + public ResponseEntity listFAQsAjax(HttpServletRequest req, + Authentication authentication, @RequestBody Map paramMap) { + + String searchKeyword = paramMap.get("searchKeyword"); + String pageIndex = StringUtil.getString(paramMap.get("pageIndex"), "1"); + String pageSize = StringUtil.getString(paramMap.get("pageSize") , DEFUALT_PAGE_SIZE); + String faqType = paramMap.get("faqType"); + + log.debug("listFAQsAjax > pageIndex = " + pageIndex); + log.debug("listFAQsAjax > pageSize = " + pageSize); + log.debug("listFAQsAjax > searchKeyword = " + searchKeyword); + log.debug("listFAQsAjax > faqType = " + faqType); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.setPageIndex(pageIndex); + reqVO.setPageSize(pageSize); + reqVO.addInfoItem("searchKeyword", searchKeyword); + reqVO.addInfoItem("faqType", faqType); + + // 요청 + DataApiResVO resVO = boardService.listFAQs(reqVO); + + //------------------------------- + // JSON변환 응답 처리 + //------------------------------- + // JS-GRID 페이징 처리를 포함한 응답값 처리 + // {data: [{...}], + // itemsCount: 255 + // } + HashMap retMap = new HashMap(); + retMap.put("data", resVO.getList()); + retMap.put("itemsCount", resVO.getRecordTotCount()); + + return makeResponseEntityJson(retMap); + } + + + /** + * 묻고답하기 상세 내용 조회한다. + * + * @param req + * @return + */ + @RequestMapping("/board/selectFAQAjax.do") + public ResponseEntity selectFAQAjax(HttpServletRequest req, Authentication authentication, @RequestBody Map paramMap) { + + // 게시물 번호 + String articleNo = paramMap.get("articleNo"); + + log.debug("selectQnA > articleNo = " + articleNo); + + //------------------------------- + // REQ VO 구성 + //------------------------------- + DataApiReqVO reqVO = new DataApiReqVO(); + reqVO.setAuthKey(createAuthKey(req, authentication)); + reqVO.addInfoItem("boardNo", "FAQ"); // 게시판ID + reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 + + // 요청 + DataApiResVO resVO = boardService.selectFAQ(reqVO); + + // 반환 정보 + return makeResponseEntityJson(resVO.getInfo()); } /** - * 묻고답하기 목록 조회 화면을 구성한다. + * 묻고답하기 목록 화면을 표출한다. * * @param req * @return @@ -117,7 +345,8 @@ public class BoardController extends NlibCommonController // 페이징 사이즈 코드 목록 조회 DataApiReqVO reqVOforPageSize = new DataApiReqVO(); reqVOforPageSize.setAuthKey(createAuthKey(req, authentication)); - reqVOforPageSize.setPageSize(0); + reqVOforPageSize.setPageIndex(pageIndex); + reqVOforPageSize.setPageSize(pageSize); reqVOforPageSize.addInfoItem("codeUpperId", "PAGE_SIZE"); DataApiResVO resVOforPageSize = codeService.listCodes(reqVOforPageSize); @@ -247,6 +476,15 @@ public class BoardController extends NlibCommonController return "nlib/board/insertQnAForm"; } + /** + * 묻고답하기 등록 처리한다. + * + * @param req + * @param authentication + * @param paramMap + * @param model + * @return + */ @RequestMapping("/board/insertQnA.do") public String insertQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { @@ -325,6 +563,15 @@ public class BoardController extends NlibCommonController return "nlib/board/verifyWriter"; } + /** + * 묻고답하기 수정 화면 표출한다. + * + * @param req + * @param authentication + * @param paramMap + * @param model + * @return + */ @RequestMapping("/board/updateQnAForm.do") public String updateQnAForm(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { @@ -394,6 +641,15 @@ public class BoardController extends NlibCommonController return "nlib/board/updateQnAForm"; } + /** + * 묻고답하기 수정 처리한다. + * + * @param req + * @param authentication + * @param paramMap + * @param model + * @return + */ @RequestMapping("/board/updateQnA.do") public String updateQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { @@ -486,6 +742,15 @@ public class BoardController extends NlibCommonController return "redirect:/board/selectQnA.do"; } + /** + * 묻고답하기 삭제한다. + * + * @param req + * @param authentication + * @param paramMap + * @param model + * @return + */ @RequestMapping("/board/deleteQnA.do") public String deleteQnA(HttpServletRequest req, Authentication authentication, @RequestParam Map paramMap, ModelMap model) { diff --git a/src/main/webapp/WEB-INF/jsp/nlib/board/listFAQs.jsp b/src/main/webapp/WEB-INF/jsp/nlib/board/listFAQs.jsp index dfa6d71c..ac277898 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/board/listFAQs.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/board/listFAQs.jsp @@ -1,9 +1,9 @@ <% /** *
- * @Class Name : getSampleInfo.jsp
+ * @Class Name : listFAQs.jsp
  * 
- * @Description : RESTful API 호출 샘플
+ * @Description : FAQ 목록 화면 
  * 
  * 
  * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
@@ -13,71 +13,210 @@
  * @ ------------    --------    ---------------------------
  * @ 수정일                     수정자             수정내용
  * @ ------------    --------    ---------------------------
- * @ 2021. 6. 15.    KNKIM       최초 생성
+ * @ 2021. 8. 3.     KNKIM       최초 생성
  *
  * 
  * @author 이씨플라자 * DIGITALSHIP KNKIM
- * @since 2021. 6. 15.
+ * @since 2021. 8. 3.
  * @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" %>
-QRCode 회원정보
+ <%@ 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}
+ FAQ
 
-
-
-
-
+ 
+ 
+ 
+ ${pageTitle}
 
-
-
-
- 
+ 
+ 
+ 
+ 
 
-
+ + var $selectedRow = $(selectedRow); + var reqUrl = "${pageContext.request.contextPath}/board/selectFAQAjax.do"; + + var searchKeyword = document.articleForm.searchKeyword.value; + var pageIndex = $("#pageIndex").val(); + var pageSize = $("#pageSize").val(); + var faqType = document.articleForm.faqType.value; + var inputData = { + "searchKeyword" : searchKeyword + , "pageIndex" : pageIndex + , "pageSize": pageSize + , "faqType": faqType}; + + //-------------------------------------- + // 요청 처리 + //-------------------------------------- + $.ajax({ + type: "post", + contentType: "application/json; charset=utf-8", + url: reqUrl, + dataType: "json", + data: JSON.stringify(inputData), + }).done(function(response){ + $selectedRow.css("color","red"); + }); + + } + + // 게시글 작성으로 이동 + function fn_newArticle() { + $("#articleNo").val(""); + $("#articleForm").attr("action", "${pageContext.request.contextPath}/board/insertFAQForm.do"); + $("#articleForm").submit(); + } + + // 그리드 데이터 조회 호출 + function fn_searchArticle(pageSize, pageIndex) { + $("#jsGrid").jsGrid("search" + , {'pageSize' : (pageSize ? pageSize : fn_getIntValue("pageSize", ${pageSize}) ), + 'pageIndex' : (pageIndex ? pageIndex : fn_getIntValue("pageIndex", 1)) + } + ); + } + + + + + + +

${pageTitle }

+ + 메시지 : ${message} +  
+
+ + + + + + + + + +
+ + + + +
+ + + - - diff --git a/src/main/webapp/WEB-INF/jsp/nlib/board/listNotices.jsp b/src/main/webapp/WEB-INF/jsp/nlib/board/listNotices.jsp index f02fa151..94e6e071 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/board/listNotices.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/board/listNotices.jsp @@ -3,7 +3,7 @@ *
  * @Class Name : listNotices.jsp
  * 
- * @Description : JS-GRID 샘플 화면 
+ * @Description : 공지사항 목록을 조회한다.
  * 
  * 
  * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
@@ -34,7 +34,7 @@
 공지사항
 
 
-
+
 
 ${pageTitle}
 
@@ -43,104 +43,191 @@
 
 
 
+
 
 
 
- 
 
-
+

${pageTitle }

-
- - - - + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/board/selectNotice.jsp b/src/main/webapp/WEB-INF/jsp/nlib/board/selectNotice.jsp new file mode 100644 index 00000000..75e68624 --- /dev/null +++ b/src/main/webapp/WEB-INF/jsp/nlib/board/selectNotice.jsp @@ -0,0 +1,194 @@ +<% +/** + *
+ * @Class Name : selectNotice.jsp
+ * 
+ * @Description : 공지사항 상세내용을 조회한다.
+ * 
+ * 
+ * @프로젝트명: 지방문화원 통합자료관리시스템 구축사업 (2021)
+ *
+ * 
+ * + * @ ------------ -------- --------------------------- + * @ 수정일 수정자 수정내용 + * @ ------------ -------- --------------------------- + * @ 2021. 7. 22. KNKIM 최초 생성 + * + * + * @author 이씨플라자 * DIGITALSHIP KNKIM + * @since 2021. 7. 22. + * @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 } +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
유형${article.articleTypeName }작성일${article.regDate }
제목${article.title}
질문내용${article.contentNotice}
+ <% + // 파일정보 : 저장파일ID=원파일명 + %> + + + + ${fInfo[1]}
+
+
+ +
+ + + + + + + + + + + + + + +
이전글${preArticle.articleTypeName }${preArticle.title }작성일 : ${preArticle.regDate }
다음글${nextArticle.articleTypeName }${nextArticle.title }작성일 : ${nextArticle.regDate }
+ + + + +
+ +
+ + +
+ + + +
+ + + diff --git a/src/main/webapp/WEB-INF/jsp/nlib/board/selectQnA.jsp b/src/main/webapp/WEB-INF/jsp/nlib/board/selectQnA.jsp index be0bb07f..ee0f469b 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/board/selectQnA.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/board/selectQnA.jsp @@ -124,6 +124,7 @@ function fn_downloadFile(fid, fname) { + @@ -156,7 +157,17 @@ function fn_downloadFile(fid, fname) { ${article.contentReply} - ${article.contentReplyFile} + + <% + // 파일정보 : 저장파일ID=원파일명 + %> + + + + ${fInfo[1]}
+
+ +