diff --git a/src/main/java/cmm/web/CmmController.java b/src/main/java/cmm/web/CmmController.java index 7c402de8..33e1f751 100644 --- a/src/main/java/cmm/web/CmmController.java +++ b/src/main/java/cmm/web/CmmController.java @@ -35,6 +35,7 @@ import org.springframework.util.FileCopyUtils; import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.ModelAndView; import cmm.Constant; @@ -1630,67 +1631,6 @@ public class CmmController { } - /** - * YOURLS의 API를 통해서 단축URL 가져오기 - * @param cmmVO - * @param model - * @param commandMap - * @param req - * @param res - * @return - * @throws EgovBizException - */ - @RequestMapping(value="/cmm/shorturl-data.do") - public ModelAndView shorturl ( - @ModelAttribute("cmmVO") CmmVO cmmVO - , ModelMap model - , HttpServletRequest req - , HttpServletResponse res - ) throws EgovBizException { - String returnUrl = ""; - DataMap paramMap = DataMap.getParamMap(req); - try { - String originUrl = URLEncoder.encode(paramMap.getString("url"), "UTF-8"); - URL url = new URL( propertiesService.getString("shorturl.api") + "&action=shorturl&format=xml&title=nculture&url=" + originUrl); - HttpURLConnection con = (HttpURLConnection) url.openConnection(); - con.setRequestMethod("GET"); - //con.setRequestProperty("Authorization", header); - int responseCode = con.getResponseCode(); - BufferedReader br; - if(responseCode==200) { // 정상 호출 - br = new BufferedReader(new InputStreamReader(con.getInputStream())); - } else { // 에러 발생 - br = new BufferedReader(new InputStreamReader(con.getErrorStream())); - } - - String inputLine; - StringBuffer response = new StringBuffer(); - while ((inputLine = br.readLine()) != null) { - response.append(inputLine); - } - br.close(); - - String str = response.toString(); - Pattern pattern = Pattern.compile("(.+?)"); - Matcher matcher = pattern.matcher(str); - while (matcher.find()) { - //System.out.println(matcher.group(1)); - returnUrl = matcher.group(1); - if(matcher.group(1) == null){ - break; - } - } - } catch (Exception e) { - System.err.println(e.toString()); - } - - ModelAndView modelAndView = new ModelAndView(); - modelAndView.setViewName("jsonView"); - - model.addAttribute("responseData", returnUrl); - return modelAndView; - } - @RequestMapping(value="/cmm/cmmAssetSecondCategory.do") public ModelAndView selectCmmAssetSecondCategoryList(ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception{ DataMap paramMap = DataMap.getParamMap(request); diff --git a/src/main/java/nlib/col/web/InterestController.java b/src/main/java/nlib/col/web/InterestController.java index 4879a257..ebd26a8c 100644 --- a/src/main/java/nlib/col/web/InterestController.java +++ b/src/main/java/nlib/col/web/InterestController.java @@ -93,7 +93,7 @@ public class InterestController extends NlibCommonController //문화원 목록 조회 vo = interestService.selectOrgList(searchCollectionVO); - + model.addAttribute("pdfUri",NlibProperty.getProperty("pdf.uri")); model.addAttribute("deptList",vo); model.addAttribute("searchCollection", searchCollectionVO); return "nlib/collection/listInterests"; @@ -121,14 +121,13 @@ public class InterestController extends NlibCommonController searchCollectionVO.setMbInfoId(loginVO.getMbInfoId()); searchCollectionVO.setPageStart(searchCollectionVO.getPageIndex(), searchCollectionVO.getPageSize()); - List List = new ArrayList(); // 요청 - List = interestService.listInterests(searchCollectionVO); + List interestList = interestService.listInterests(searchCollectionVO); totalCount = interestService.countListInterests(searchCollectionVO); String mbInfoId = getMbInfoId(request); - operList = collectionService.setDetailInfoForList(List, getMbInfoId(request), NlibProperty.getString("thumbnail.image.url.small")); + operList = collectionService.setDetailInfoForList(interestList, getMbInfoId(request), NlibProperty.getString("thumbnail.image.url.small")); //------------------------------- // JSON변환 응답 처리 //------------------------------- diff --git a/src/main/java/nlib/sch/service/CmmVO.java b/src/main/java/nlib/sch/service/CmmVO.java new file mode 100644 index 00000000..729090b5 --- /dev/null +++ b/src/main/java/nlib/sch/service/CmmVO.java @@ -0,0 +1,673 @@ +package nlib.sch.service; + +import java.io.Serializable; +import java.util.Date; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @Class Name : CmmVO.java + * @author Kdmistrator + * @version 1.0 + * 상속 받아서 사용하는 공통 VO + */ +public class CmmVO implements Serializable{ + + private static final long serialVersionUID = 1L; + private String cntntsSeCode; + private String searchCondition = ""; + private String searchKeyword = ""; + private String searchCondition2 = ""; + private String searchKeyword2 = ""; + private String searchCondition3 = ""; + private String searchKeyword3 = ""; + private String searchCondition4 = ""; + private String searchKeyword4 = ""; + private String searchCondition5 = ""; + private String searchKeyword5 = ""; + private String searchCondition6 = ""; + private String searchKeyword6 = ""; + private String searchCondition7 = ""; + private String searchCondition8 = ""; + private String searchKeywordWhole = ""; + private String searchConditionWhole = ""; + private String searchDateCondition = ""; + private Date searchStartDate = null; + private Date searchEndDate = null; + private String searchStartStr = null; + private String searchEndStr = null; + private String searchUseYn = ""; + private String searchType = ""; + private String searchType1 = ""; + private String searchType2 = ""; + private String searchType3 = ""; + private String searchType4 = ""; + private int pageIndex = 1; + private int pageIndex2 = 1; + private int pageIndex3 = 1; + + private int pageUnit = 12; + private int pageUnit10 = 10; + private int pageUnit20 = 20; + private int pageUnit30 = 30; + private int pageSize = 10; + private int mobilePageSize = 5; + private int firstIndex = 1; + private int lastIndex = 1; + private int recordCountPerPage = 10; + private String orderCondition; + private String orderType; + private boolean isBr = false; + private String pageUseAt = "Y"; + private int limit = 5; + private String authorCode; + private String targetId; + private String sido = ""; + private String sigungu = ""; + private String sido2 = ""; + private String sigungu2 = ""; + private String dong = ""; + private String lon = ""; + private String lat = ""; + private String addr =""; + private String xy =""; + private String distance = ""; + private String tabCode = ""; + private int fixedPage = 0; + private String activityType =""; + private String contentType = ""; + private String toDay = ""; + private String parameter1 = ""; + private String parameter2 = ""; + private String parameter3 = ""; + private String parameter4 = ""; + private String parameter5 = ""; + private String parameter6 = ""; + private String sessionId = ""; + private boolean isTag = false; + private String viewType = ""; + // 태그 명이 넘어가는 파라미터 + private String searchTag = ""; + // 스크랩 여부(스크랩 활성 체크) : 존재하면 on , 존재하지 않으면 빈값 "" + private String scrapActive = ""; + private String aId=""; // 에셋 아이디 + private String mId=""; // 에셋미디어 아이디 + private String [] searchLocaleArray; // 지역 + private String [] searchAssetClassArray; // 에셋유형 (ex. 일반, 특화, 문화원소장 등) + private String [] searchAssetTypeArray; // 자산유형 (ex. 문서, 이미지, 동영상, 오디오, 링크 등) + private String [] searchFirstCategoryArray; // 카테고리 + + private String sCouncilCd=""; + private String gubun=""; + + + public CmmVO() {} + public String getCntntsSeCode() { + return cntntsSeCode; + } + + public void setCntntsSeCode(String cntntsSeCode) { + this.cntntsSeCode = cntntsSeCode; + } + + public String getSearchCondition() { + return searchCondition; + } + + public void setSearchCondition(String searchCondition) { + this.searchCondition = searchCondition; + } + + public String getSearchKeyword() { + return searchKeyword; + } + + public void setSearchKeyword(String searchKeyword) { + this.searchKeyword = searchKeyword; + } + + public String getSearchCondition2() { + return searchCondition2; + } + + public void setSearchCondition2(String searchCondition2) { + this.searchCondition2 = searchCondition2; + } + + public String getSearchKeyword2() { + return searchKeyword2; + } + + public void setSearchKeyword2(String searchKeyword2) { + this.searchKeyword2 = searchKeyword2; + } + + public String getSearchCondition3() { + return searchCondition3; + } + + public void setSearchCondition3(String searchCondition3) { + this.searchCondition3 = searchCondition3; + } + + public String getSearchKeyword3() { + return searchKeyword3; + } + + public void setSearchKeyword3(String searchKeyword3) { + this.searchKeyword3 = searchKeyword3; + } + public String getSearchCondition4() { + return searchCondition4; + } + + public void setSearchCondition4(String searchCondition4) { + this.searchCondition4 = searchCondition4; + } + + public String getSearchKeyword4() { + return searchKeyword4; + } + + public void setSearchKeyword4(String searchKeyword4) { + this.searchKeyword4 = searchKeyword4; + } + + public String getSearchCondition5() { + return searchCondition5; + } + + public void setSearchCondition5(String searchCondition5) { + this.searchCondition5 = searchCondition5; + } + + public String getSearchKeyword5() { + return searchKeyword5; + } + + public void setSearchKeyword5(String searchKeyword5) { + this.searchKeyword5 = searchKeyword5; + } + + public String getSearchCondition6() { + return searchCondition6; + } + public void setSearchCondition6(String searchCondition6) { + this.searchCondition6 = searchCondition6; + } + public String getSearchKeyword6() { + return searchKeyword6; + } + + public String getSearchCondition7() { + return searchCondition7; + } + public void setSearchCondition7(String searchCondition7) { + this.searchCondition7 = searchCondition7; + } + public String getSearchCondition8() { + return searchCondition8; + } + public void setSearchCondition8(String searchCondition8) { + this.searchCondition8 = searchCondition8; + } + public String getSearchKeywordWhole() { + return searchKeywordWhole; + } + public void setSearchKeywordWhole(String searchKeywordWhole) { + this.searchKeywordWhole = searchKeywordWhole; + } + public String getSearchConditionWhole() { + return searchConditionWhole; + } + public void setSearchConditionWhole(String searchConditionWhole) { + this.searchConditionWhole = searchConditionWhole; + } + public void setSearchKeyword6(String searchKeyword6) { + this.searchKeyword6 = searchKeyword6; + } + public String getSearchDateCondition() { + return searchDateCondition; + } + + public void setSearchDateCondition(String searchDateCondition) { + this.searchDateCondition = searchDateCondition; + } + + public Date getSearchStartDate() { + return searchStartDate; + } + + public void setSearchStartDate(Date searchStartDate) { + this.searchStartDate = searchStartDate; + } + + public Date getSearchEndDate() { + return searchEndDate; + } + + public void setSearchEndDate(Date searchEndDate) { + this.searchEndDate = searchEndDate; + } + + + public String getSearchStartStr() { + return searchStartStr; + } + + public void setSearchStartStr(String searchStartStr) { + this.searchStartStr = searchStartStr; + } + + public String getSearchEndStr() { + return searchEndStr; + } + + public void setSearchEndStr(String searchEndStr) { + this.searchEndStr = searchEndStr; + } + + public String getSearchUseYn() { + return searchUseYn; + } + public void setSearchUseYn(String searchUseYn) { + this.searchUseYn = searchUseYn; + } + + public String getSearchType() { + return StringUtils.defaultIfEmpty(searchType, "1") ; + } + + public void setSearchType(String searchType) { + this.searchType = searchType; + } + + public String getSearchType1() { + return StringUtils.defaultIfEmpty(searchType1, "1") ; + } + public void setSearchType1(String searchType1) { + this.searchType1 = searchType1; + } + public String getSearchType2() { + return StringUtils.defaultIfEmpty(searchType2, "1") ; + } + public void setSearchType2(String searchType2) { + this.searchType2 = searchType2; + } + public String getSearchType3() { + return StringUtils.defaultIfEmpty(searchType3, "1") ; + } + public void setSearchType3(String searchType3) { + this.searchType3 = searchType3; + } + public String getSearchType4() { + return StringUtils.defaultIfEmpty(searchType4, "1") ; + } + public void setSearchType4(String searchType4) { + this.searchType4 = searchType4; + } + public int getPageIndex() { + return this.pageIndex; + } + + public void setPageIndex(int pageIndex) { + this.pageIndex = pageIndex; + } + + public int getPageIndex2() { + return pageIndex2; + } + public void setPageIndex2(int pageIndex2) { + this.pageIndex2 = pageIndex2; + } + + public int getPageIndex3() { + return pageIndex3; + } + public void setPageIndex3(int pageIndex3) { + this.pageIndex3 = pageIndex3; + } + public int getPageUnit() { + return pageUnit; + } + + public void setPageUnit(int pageUnit) { + this.pageUnit = pageUnit; + } + + public int getPageUnit10() { + return pageUnit10; + } + public void setPageUnit10(int pageUnit10) { + this.pageUnit10 = pageUnit10; + } + + public int getPageUnit20() { + return pageUnit20; + } + public void setPageUnit20(int pageUnit20) { + this.pageUnit20 = pageUnit20; + } + public int getPageUnit30() { + return pageUnit30; + } + public void setPageUnit30(int pageUnit30) { + this.pageUnit30 = pageUnit30; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public int getMobilePageSize() { + return mobilePageSize; + } + public void setMobilePageSize(int mobilePageSize) { + this.mobilePageSize = mobilePageSize; + } + public int getFirstIndex() { + return firstIndex; + } + + public void setFirstIndex(int firstIndex) { + this.firstIndex = firstIndex; + } + + public int getLastIndex() { + return lastIndex; + } + + public void setLastIndex(int lastIndex) { + this.lastIndex = lastIndex; + } + + public int getRecordCountPerPage() { + return recordCountPerPage; + } + + public void setRecordCountPerPage(int recordCountPerPage) { + this.recordCountPerPage = recordCountPerPage; + } + + public String getOrderCondition() { + return orderCondition; + } + + public void setOrderCondition(String orderCondition) { + this.orderCondition = orderCondition; + } + public String getOrderType() { + return orderType; + } + + public void setOrderType(String orderType) { + this.orderType = orderType; + } + + public boolean isBr() { + return isBr; + } + + public void setBr(boolean isBr) { + this.isBr = isBr; + } + + public String getPageUseAt() { + return pageUseAt; + } + public void setPageUseAt(String pageUseAt) { + this.pageUseAt = pageUseAt; + } + + public int getLimit() { + return limit; + } + public void setLimit(int limit) { + this.limit = limit; + } + + public String getAuthorCode() { + return authorCode; + } + public void setAuthorCode(String authorCode) { + this.authorCode = authorCode; + } + + public String getTargetId() { + return targetId; + } + public void setTargetId(String targetId) { + this.targetId = targetId; + } + + public String getSido() { + return sido; + } + public void setSido(String sido) { + this.sido = sido; + } + public String getSigungu() { + return sigungu; + } + public void setSigungu(String sigungu) { + this.sigungu = sigungu; + } + public String getSido2() { + return sido2; + } + public void setSido2(String sido2) { + this.sido2 = sido2; + } + public String getSigungu2() { + return sigungu2; + } + public void setSigungu2(String sigungu2) { + this.sigungu2 = sigungu2; + } + public String getDong() { + return dong; + } + public void setDong(String dong) { + this.dong = dong; + } + public String getLon() { + return lon; + } + public void setLon(String lon) { + this.lon = lon; + } + public String getLat() { + return lat; + } + public void setLat(String lat) { + this.lat = lat; + } + + public String getAddr() { + return addr; + } + public void setAddr(String addr) { + this.addr = addr; + } + public String getXy() { + return xy; + } + public void setXy(String xy) { + this.xy = xy; + } + + public String getDistance() { + return distance; + } + public void setDistance(String distance) { + this.distance = distance; + } + + public String getTabCode() { + return tabCode; + } + public void setTabCode(String tabCode) { + this.tabCode = tabCode; + } + + + public int getFixedPage() { + return fixedPage; + } + public void setFixedPage(int fixedPage) { + this.fixedPage = fixedPage; + } + + public String getActivityType() { + return activityType; + } + public void setActivityType(String activityType) { + this.activityType = activityType; + } + public String getContentType() { + return contentType; + } + public void setContentType(String contentType) { + this.contentType = contentType; + } + + public String getToDay() { + return toDay; + } + public void setToDay(String toDay) { + this.toDay = toDay; + } + public String getParameter1() { + return parameter1; + } + public void setParameter1(String parameter1) { + this.parameter1 = parameter1; + } + public String getParameter2() { + return parameter2; + } + public void setParameter2(String parameter2) { + this.parameter2 = parameter2; + } + public String getParameter3() { + return parameter3; + } + public void setParameter3(String parameter3) { + this.parameter3 = parameter3; + } + public String getParameter4() { + return parameter4; + } + public void setParameter4(String parameter4) { + this.parameter4 = parameter4; + } + public String getParameter5() { + return parameter5; + } + public void setParameter5(String parameter5) { + this.parameter5 = parameter5; + } + public String getParameter6() { + return parameter6; + } + public void setParameter6(String parameter6) { + this.parameter6 = parameter6; + } + public String getSessionId() { + return sessionId; + } + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + public boolean isTag() { + return isTag; + } + public void setIsTag(boolean isTag) { + this.isTag = isTag; + } + public String getViewType() { + return viewType; + } + public void setViewType(String viewType) { + this.viewType = viewType; + } + + public String getSearchTag() { + return searchTag; + } + public void setSearchTag(String searchTag) { + this.searchTag = searchTag; + } + + public String getScrapActive() { + return scrapActive; + } + public void setScrapActive(String scrapActive) { + this.scrapActive = scrapActive; + } + public String getaId() { + return aId; + } + public void setaId(String aId) { + this.aId = aId; + } + public String getmId() { + return mId; + } + public void setmId(String mId) { + this.mId = mId; + } + + public String[] getSearchLocaleArray() { + return searchLocaleArray; + } + public void setSearchLocaleArray(String[] searchLocaleArray) { + this.searchLocaleArray = searchLocaleArray; + } + public String[] getSearchAssetClassArray() { + return searchAssetClassArray; + } + public void setSearchAssetClassArray(String[] searchAssetClassArray) { + this.searchAssetClassArray = searchAssetClassArray; + } + + public String[] getSearchAssetTypeArray() { + return searchAssetTypeArray; + } + public void setSearchAssetTypeArray(String[] searchAssetTypeArray) { + this.searchAssetTypeArray = searchAssetTypeArray; + } + public String getsCouncilCd() { + return sCouncilCd; + } + public void setsCouncilCd(String sCouncilCd) { + this.sCouncilCd = sCouncilCd; + } + + public String[] getSearchFirstCategoryArray() { + return searchFirstCategoryArray; + } + public void setSearchFirstCategoryArray(String[] searchFirstCategoryArray) { + this.searchFirstCategoryArray = searchFirstCategoryArray; + } + + public String getGubun() { + return gubun; + } + public void setGubun(String gubun) { + this.gubun = gubun; + } + /** + * toString + * @return String + */ + public String toString() { + return ToStringBuilder.reflectionToString(this); + } + +} diff --git a/src/main/java/nlib/sch/web/NlibSearchController.java b/src/main/java/nlib/sch/web/NlibSearchController.java index 6455049a..db98c820 100644 --- a/src/main/java/nlib/sch/web/NlibSearchController.java +++ b/src/main/java/nlib/sch/web/NlibSearchController.java @@ -1,11 +1,18 @@ package nlib.sch.web; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.HttpURLConnection; +import java.net.URL; +import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; @@ -20,9 +27,13 @@ import org.springframework.web.bind.annotation.ModelAttribute; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; import cmm.Constant; import cmm.util.CmmUtil; +import nlib.sch.service.CmmVO; +import cmm.util.DataMap; +import egovframework.rte.fdl.cmmn.exception.EgovBizException; import kccf.res.service.ResourcesService; import kccf.sch.service.SearchService; import nlib.cmm.NlibCommonController; @@ -194,7 +205,7 @@ public class NlibSearchController extends NlibCommonController { model.addAttribute("firstClassList", firstClassList); model.addAttribute("secondClassList", secondClassList); - + model.addAttribute("pdfUri", NlibProperty.getProperty("pdf.uri")); searchVO.setQuery(searchVO.getQuery().replaceAll("\\\"", """)); return "nlib/collection/searchList"; } @@ -225,74 +236,76 @@ public class NlibSearchController extends NlibCommonController { vo = collectionService.getItemInfo(vo,NlibProperty.getString("thumbnail.image.url.big")); //반납예정일 편집 - if(!StringUtil.getString(vo.getRtnExpctDd(),"").equals("")) + if(!(vo == null) && !StringUtil.getString(vo.getRtnExpctDd(),"").equals("")) { String strDate = vo.getRtnExpctDd(); SimpleDateFormat dtFormat = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat newDtFormat = new SimpleDateFormat("yyyy-MM-dd"); Date formatDate = dtFormat.parse(strDate); - String strNewDtFormat = newDtFormat.format(formatDate); + String strNewDtFormat = newDtFormat.format(formatDate); vo.setRtnExpctDd(strNewDtFormat); } model.addAttribute("result", vo); + model.addAttribute("pdfUri", NlibProperty.getProperty("pdf.uri")); return "nlib/collection/searchItemDetail"; } + /** - * 소장자료를 조회한다. - * - * @param req - * @return - *//* - @RequestMapping(value="/collection/listItemsAjax.do", method = RequestMethod.POST) - public ResponseEntity listItemsAjax(HttpServletRequest req, - Authentication authentication, @RequestBody CollectionVO searchCollectionVO) { - - //String searchKeyword = paramMap.get("searchKeyword"); - if(searchCollectionVO.getPageIndex() < 1) searchCollectionVO.setPageIndex(1); - if(searchCollectionVO.getPageSize() < 1) searchCollectionVO.setPageSize(DEFUALT_PAGE_SIZE); - - - int totalCount= 0; - //사용자 정보를 가져온다. - NlibLoginVO loginVO = getNlibLoginVO(authentication); - - searchCollectionVO.setPageStart(searchCollectionVO.getPageIndex(), searchCollectionVO.getPageSize()); - List List = new ArrayList(); - - // 요청 - List = risService.listItems(searchCollectionVO); - totalCount = risService.countListItems(searchCollectionVO); - - PagingVO pageVO = new PagingVO(); - pageVO.setPagingVO(totalCount, searchCollectionVO.getPageIndex(), searchCollectionVO.getPageSize()); - - //------------------------------- - // REQ VO 구성 - //------------------------------- - DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setPageIndex(pageIndex); - reqVO.setPageSize(pageSize); - reqVO.putInfoItem("searchKeyword", searchKeyword); - - // 요청 - //DataApiResVO resVO = collectionService.listItems(reqVO); - - //------------------------------- - // JSON변환 응답 처리 - //------------------------------- - // JS-GRID 페이징 처리를 포함한 응답값 처리 - // {data: [{...}], - // itemsCount: 255 - // } - HashMap retMap = new HashMap(); - retMap.put("data", resVO.getList(DataApiVO.XML_EL_NAME_RECORD)); - retMap.put("itemsCount", resVO.getRecordTotCount()); - retMap.put("data", List); - retMap.put("pageVO", pageVO); - - return makeResponseEntityJson(retMap); - }*/ - + * YOURLS의 API를 통해서 단축URL 가져오기 + * @param cmmVO + * @param model + * @param commandMap + * @param req + * @param res + * @return + * @throws EgovBizException + */ + @RequestMapping(value="/search/shorturl-data.do") + @ResponseBody + public String shorturl ( + @ModelAttribute("cmmVO") CmmVO cmmVO + , ModelMap model + , HttpServletRequest req + , HttpServletResponse res + ) throws EgovBizException { + String returnUrl = ""; + DataMap paramMap = DataMap.getParamMap(req); + try { + String originUrl = URLEncoder.encode(paramMap.getString("url"), "UTF-8"); + URL url = new URL( NlibProperty.getProperty("shorturl.api") + "&action=shorturl&format=xml&title=nculture&url=" + originUrl); + HttpURLConnection con = (HttpURLConnection) url.openConnection(); + con.setRequestMethod("GET"); + //con.setRequestProperty("Authorization", header); + int responseCode = con.getResponseCode(); + BufferedReader br; + if(responseCode==200) { // 정상 호출 + br = new BufferedReader(new InputStreamReader(con.getInputStream())); + } else { // 에러 발생 + br = new BufferedReader(new InputStreamReader(con.getErrorStream())); + } + + String inputLine; + StringBuffer response = new StringBuffer(); + while ((inputLine = br.readLine()) != null) { + response.append(inputLine); + } + br.close(); + + String str = response.toString(); + Pattern pattern = Pattern.compile("(.+?)"); + Matcher matcher = pattern.matcher(str); + while (matcher.find()) { + //System.out.println(matcher.group(1)); + returnUrl = matcher.group(1); + if(matcher.group(1) == null){ + break; + } + } + } catch (Exception e) { + System.err.println(e.toString()); + } + return returnUrl; + } /** * 상세검색 팝업. * @@ -325,49 +338,4 @@ public class NlibSearchController extends NlibCommonController { return "nlib/search/getDetailedSearchFormPopup"; } - /** - * 소장자료 상세 내용 조회한다. - * - * @param req - * @return - *//* - @RequestMapping("/search/selectItemInfo.do") - public String selectItemInfo(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 message = paramMap.get("message"); - - // 게시물 번호 - String articleNo = paramMap.get("articleNo"); - - log.debug("selectQnA > pageIndex = " + pageIndex); - log.debug("selectQnA > pageSize = " + pageSize); - log.debug("selectQnA > searchKeyword = " + searchKeyword); - log.debug("selectQnA > articleNo = " + articleNo); - log.debug("selectQnA > message = " + message); - - //------------------------------- - // REQ VO 구성 - //------------------------------- - DataApiReqVO reqVO = new DataApiReqVO(); - reqVO.setPageIndex(pageIndex); - reqVO.setPageSize(pageSize); - reqVO.addInfoItem("boardNo", "QNA"); // 게시판ID - reqVO.addInfoItem("articleNo", articleNo); // 게시물번호 - - // 요청 - DataApiResVO resVO = collectionService.selectItemInfo(reqVO); - - // 반환 정보 - model.addAttribute("articleNo" , articleNo); - model.addAttribute("article" , resVO.getInfo()); // 게시물 상세 - model.addAttribute("message" , message); - model.addAttribute("pageIndex" , pageIndex); - model.addAttribute("pageSize" , pageSize); - model.addAttribute("searchKeyword", searchKeyword); - - return "nlib/collection/selectItemInfo"; - }*/ } diff --git a/src/main/resources/nlib/nlib.properties b/src/main/resources/nlib/nlib.properties index 7149bb32..b6c12738 100644 --- a/src/main/resources/nlib/nlib.properties +++ b/src/main/resources/nlib/nlib.properties @@ -180,6 +180,7 @@ cart.cookie.path = / #---------------------------------------- # \uc378\ub124\uc77c \uae30\ubcf8 \uc774\ubbf8\uc9c0 (\uc378\ub124\uc77c \uc5c6\uc74c) #---------------------------------------- +thumbnail.image.url.prefix = https://iams-dev.nculture.org/uac thumbnail.image.url.small = /images/thumbnail/noimage-s.jpg thumbnail.image.url.middle = /images/thumbnail/noimage-m.jpg thumbnail.image.url.big = /images/thumbnail/noimage-b.jpg diff --git a/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp b/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp index b84229cc..ac874c39 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/listInterests.jsp @@ -226,7 +226,7 @@ } if(!fn_isEmpty(obj.interfaceId) && !fn_isEmpty(obj.openDivCd) && obj.openDivCd != '3') { - t_btn+= "원문보기"; + t_btn+= "원문보기"; } t_btn+= "RIS"; diff --git a/src/main/webapp/WEB-INF/jsp/nlib/collection/searchItemDetail.jsp b/src/main/webapp/WEB-INF/jsp/nlib/collection/searchItemDetail.jsp index 9b6d0d23..171698ff 100644 --- a/src/main/webapp/WEB-INF/jsp/nlib/collection/searchItemDetail.jsp +++ b/src/main/webapp/WEB-INF/jsp/nlib/collection/searchItemDetail.jsp @@ -31,6 +31,7 @@ <%@ 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" %> + 자료 상세 @@ -88,12 +89,21 @@ - + <%-- ')";>원문보기 - + --%> + 원문보기 ')";>RIS - 즐겨찾기 - 공유 + + 즐겨찾기 + + + 즐겨찾기 + + <%-- + ">공유 + --%> + 공유 @@ -104,7 +114,7 @@ 연대 - 년부터 까지 + 년부터 까지 주제분야 @@ -155,11 +165,7 @@ 키워드 - 1 - 경주 - 문화인 - 인물 - 석불 + @@ -519,10 +525,10 @@ 자료를 SNS에 공유해보세요. 닫기 - 카카오스토리 - 블로그 - 페이스북 - 트위터 + 카카오스토리 + 블로그 + 페이스북 + 트위터 @@ -538,40 +544,6 @@ - - - 서지정보 내보내기(Export) - - - - - 서지정보 내보내기 안내 - - 소장자료관은 콘텐츠 생산자 및 연구자들을 위해 서지정보 내보내기 기능을 제공하고 있습니다. - 서지정보 내용형식, 제목, 저자, 시리즈, 언어, URL, 태그 - 제공 포맷RIS : Search Information System (*.ris) - RIS 지원 서지관리 프로그램EndNote, Mendeley, Zotero) 외 - - - - 서지관리 프로그램 안내 - - 서지관리 프로그램은 문헌 및 온라인 콘텐츠 등 자료를 관리하고 공유하는데 사용됩니다. - - 해당 프로그램은 소속기관 또는 개인 가입이 필요할 수 있으며, 소장자료관은 링크만 제공하고 직접 서비스를 제공하지 않습니다. - Zotero (www.zotero.com) / 한글 메뉴 지원 (o), 300MB 용량 무료 (초과 유료) - EndNote (www.endnote.com) / 한글 메뉴 지원 (x) , 2G 용량 무료 (초과유료) - Mendeley (www.mendeley.com) / 한글 메뉴 지원 (x), 2G 용량 무료 (초과유료) - - - - - 내보내기 - 닫기 - - - - -
자료를 SNS에 공유해보세요.
카카오스토리
블로그
페이스북
트위터
서지정보 내보내기 안내
소장자료관은 콘텐츠 생산자 및 연구자들을 위해 서지정보 내보내기 기능을 제공하고 있습니다.
서지정보 내용형식, 제목, 저자, 시리즈, 언어, URL, 태그
제공 포맷RIS : Search Information System (*.ris)
RIS 지원 서지관리 프로그램EndNote, Mendeley, Zotero) 외
서지관리 프로그램 안내
서지관리 프로그램은 문헌 및 온라인 콘텐츠 등 자료를 관리하고 공유하는데 사용됩니다.
- 해당 프로그램은 소속기관 또는 개인 가입이 필요할 수 있으며, 소장자료관은 링크만 제공하고 직접 서비스를 제공하지 않습니다.
Zotero (www.zotero.com) / 한글 메뉴 지원 (o), 300MB 용량 무료 (초과 유료)
EndNote (www.endnote.com) / 한글 메뉴 지원 (x) , 2G 용량 무료 (초과유료)
Mendeley (www.mendeley.com) / 한글 메뉴 지원 (x), 2G 용량 무료 (초과유료)