Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovArticleServiceImpl.java
===================================================================
--- base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovArticleServiceImpl.java (revision 141)
+++ base3.10/src/main/java/egovframework/com/cop/bbs/service/impl/EgovArticleServiceImpl.java (revision 142)
@@ -6,6 +6,10 @@
import javax.annotation.Resource;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document;
+import org.jsoup.nodes.Element;
+import org.jsoup.select.Elements;
import org.springframework.stereotype.Service;
import egovframework.com.cop.bbs.service.Board;
@@ -30,8 +34,12 @@
@Override
public Map<String, Object> selectArticleList(BoardVO boardVO) {
- List<?> list = egovArticleDao.selectArticleList(boardVO);
-
+ List<BoardVO> list = (List<BoardVO>) egovArticleDao.selectArticleList(boardVO);
+
+ for (BoardVO vo : list) {
+ // 이미지, 동영상 썸네일 추출
+ vo = extBbsThumbnail(vo);
+ }
int cnt = egovArticleDao.selectArticleListCnt(boardVO);
@@ -42,6 +50,27 @@
return map;
}
+
+ /**
+ * 게시판VO에서 썸네일 추출
+ * @Author : 임종호
+ * @Date : 2022. 2. 22
+ * @Method Name : extBbsThumbnail
+ * @return : BoardVO
+ */
+ public BoardVO extBbsThumbnail(BoardVO vo) {
+ String html = vo.getNttCn();
+ Document doc = Jsoup.parseBodyFragment(html);
+ Element el = doc.selectFirst("iframe") == null ? doc.selectFirst("img") : doc.selectFirst("iframe");
+ if (el != null) {
+ el.attr("width", "100%");
+ el.attr("height", "");
+ el.attr("alt", vo.getNttSj() + " 대표이미지");
+ vo.setThumbnail(el.outerHtml());
+ }
+ vo.setNttCn(doc.text());
+ return vo;
+ }
@Override
public BoardVO selectArticleDetail(BoardVO boardVO) {
Index: base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java
===================================================================
--- base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java (revision 141)
+++ base3.10/src/main/java/egovframework/com/cop/bbs/service/BoardVO.java (revision 142)
@@ -124,6 +124,9 @@
* 대표이미지 링크
*/
private String rprsAtchFileLink;
+
+ /** 썸네일 (이미지, 동영상) */
+ private String thumbnail;
/**
* searchBgnDe attribute를 리턴한다.
@@ -717,6 +720,11 @@
this.rprsAtchFileLink = rprsAtchFileLink;
}
-
+ public String getThumbnail() {
+ return thumbnail;
+ }
+ public void setThumbnail(String thumbnail) {
+ this.thumbnail = thumbnail;
+ }
}
Index: base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbsLogScheduling.java
===================================================================
--- base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbsLogScheduling.java (revision 141)
+++ base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbsLogScheduling.java (nonexistent)
@@ -1,30 +0,0 @@
-package egovframework.com.sym.log.blg.service;
-
-import javax.annotation.Resource;
-
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-
-import egovframework.rte.fdl.cmmn.exception.EgovBizException;
-
-/**
- * 게시글 로그 요약을 위한 스케줄링
- * @author 이다솜
- *
- */
-@Component
-public class BbsLogScheduling {
-
- @Resource(name="BbsLogService")
- private BbsLogService bbsLogService;
-
- /**
- * 게시글 로그 요약 등록
- * @throws Exception
- */
- @Scheduled(cron = "0 0 17 * * *")
- public void insertBbsLogSummary() throws EgovBizException {
- bbsLogService.insertBbsLogSummary();
- }
-
-}
Index: base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbslogAspect.java
===================================================================
--- base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbslogAspect.java (revision 141)
+++ base3.10/src/main/java/egovframework/com/sym/log/blg/service/BbslogAspect.java (revision 142)
@@ -28,7 +28,7 @@
/** 게시글 로그 service */
@Resource(name = "BbsLogService")
private BbsLogService bbsLogService;
-
+
/**
* 게시글 로그 등록
*
Index: base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java
===================================================================
--- base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java (nonexistent)
+++ base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java (revision 142)
@@ -0,0 +1,31 @@
+package egovframework.com.sym.log.blg.task;
+
+import javax.annotation.Resource;
+
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import egovframework.com.sym.log.blg.service.BbsLogService;
+import egovframework.rte.fdl.cmmn.exception.EgovBizException;
+
+/**
+ * 게시글 로그 요약을 위한 스케줄링
+ * @author 이다솜
+ *
+ */
+@Component
+public class BbsLogScheduling {
+
+ @Resource(name="BbsLogService")
+ private BbsLogService bbsLogService;
+
+ /**
+ * 게시글 로그 요약 등록
+ * @throws Exception
+ */
+ @Scheduled(cron = "0 30 10 * * *")
+ public void insertBbsLogSummary() throws EgovBizException {
+ bbsLogService.insertBbsLogSummary();
+ }
+
+}
Property changes on: base3.10/src/main/java/egovframework/com/sym/log/blg/task/BbsLogScheduling.java
___________________________________________________________________
Added: svn:mime-type
+ text/plain
Index: base3.10/src/main/resources/egovframework/spring/com/context-common.xml
===================================================================
--- base3.10/src/main/resources/egovframework/spring/com/context-common.xml (revision 141)
+++ base3.10/src/main/resources/egovframework/spring/com/context-common.xml (revision 142)
@@ -2,8 +2,12 @@
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
+ xmlns:task="http://www.springframework.org/schema/task"
+ xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
- http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">
+ http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
+ http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd
+ http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd">
<context:component-scan base-package="egovframework,froala">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Service"/>
@@ -13,6 +17,12 @@
<context:annotation-config/>
+ <!-- Activates @Scheduled and @Async annotations for scheduling -->
+ <task:annotation-driven />
+
+ <!-- @Aspect annotation -->
+ <aop:aspectj-autoproxy/>
+
<!-- 국제화 Message 설정 -->
<bean id="messageSource" class="egovframework.com.cmm.util.EgovWildcardReloadableResourceBundleMessageSource">
<property name="egovBasenames">
Index: base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml
===================================================================
--- base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml (revision 141)
+++ base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-servlet.xml (revision 142)
@@ -3,13 +3,9 @@
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:p="http://www.springframework.org/schema/p"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:task="http://www.springframework.org/schema/task"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd
- http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
- http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
- http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-4.0.xsd">
+ http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<context:component-scan base-package="egovframework,froala">
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
@@ -17,12 +13,6 @@
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>
</context:component-scan>
- <!-- 어노테이션 기반 AOP 설정 -->
- <aop:aspectj-autoproxy/>
-
- <!-- Activates @Scheduled and @Async annotations for scheduling -->
- <task:annotation-driven />
-
<!-- For Pagination Tag -->
<bean id="adminRenderer" class="egovframework.com.cmm.AdminPaginationRenderer"/>
<bean id="userRenderer" class="egovframework.com.cmm.UserPaginationRenderer"/>
Index: base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp
===================================================================
--- base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp (revision 141)
+++ base3.10/src/main/webapp/WEB-INF/jsp/egovframework/com/cop/bbs/EgovArticleList.jsp (revision 142)
@@ -182,7 +182,7 @@
<ul>
<c:forEach items="${resultList}" var="resultInfo" varStatus="status">
<li>
- <c:if test="${empty resultInfo.rprsAtchFileLink }">
+ <c:if test="${empty resultInfo.thumbnail }">
<div class="b_thumb">
<a href="#!" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" class="bg_box no_img">
<img src="/images/user/no_img.svg" alt="${resultInfo.nttSj } 대표이미지">
@@ -190,10 +190,11 @@
</a>
</div>
</c:if>
- <c:if test="${!empty resultInfo.rprsAtchFileLink }">
+ <c:if test="${!empty resultInfo.thumbnail }">
<div class="b_thumb ">
<a href="#!" onclick="fn_egov_inquire_articledetail('${resultInfo.bbsId }', '${resultInfo.nttId }');" class="bg_box">
- <img src="${resultInfo.rprsAtchFileLink }" alt="${resultInfo.nttSj } 대표이미지">
+<%-- <img src="${resultInfo.rprsAtchFileLink }" alt="${resultInfo.nttSj } 대표이미지"> --%>
+ ${resultInfo.thumbnail }
</a>
</div>
</c:if>
Index: base3.10/pom.xml
===================================================================
--- base3.10/pom.xml (revision 141)
+++ base3.10/pom.xml (revision 142)
@@ -686,6 +686,12 @@
<version>1.18.0</version>
</dependency>
+ <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>1.14.3</version>
+ </dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?