jhleem / egov star

임종호 임종호 2022-02-16 @63

rss
Index: base3.10/src/main/java/egovframework/cross/web/ContentController.java =================================================================== --- base3.10/src/main/java/egovframework/cross/web/ContentController.java (revision 62) +++ base3.10/src/main/java/egovframework/cross/web/ContentController.java (nonexistent) @@ -1,32 +0,0 @@ -package egovframework.cross.web; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; - -import egovframework.rte.fdl.cmmn.exception.EgovBizException; - -/** - * 컨텐츠 페이지 Controller - * @since 2022. 2. 15 - * @author 임종호 - * <PRE> - * ----------------------- - * 개정이력 - * 2022. 2. 15 임종호 : 최초작성 - * </PRE> - */ -@Controller -public class ContentController { - - /** - * about 페이지 - * @Author : 임종호 - * @Date : 2022. 2. 15 - * @Method Name : selectContentAbout - * @return : String - */ - @RequestMapping(value = "/content/about.do") - public String selectContentAbout() throws EgovBizException { - return ".defaultSubLayout/cross/content/about"; - } -} Index: base3.10/src/main/java/egovframework/cross/rss/web/RssFeedController.java =================================================================== --- base3.10/src/main/java/egovframework/cross/rss/web/RssFeedController.java (nonexistent) +++ base3.10/src/main/java/egovframework/cross/rss/web/RssFeedController.java (revision 63) @@ -0,0 +1,84 @@ +package egovframework.cross.rss.web; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.RequestMapping; + +import com.rometools.rome.feed.atom.Category; +import com.rometools.rome.feed.atom.Content; +import com.rometools.rome.feed.atom.Feed; +import com.rometools.rome.feed.atom.Link; +import com.rometools.rome.feed.atom.Person; +import com.rometools.rome.feed.synd.SyndPerson; + +import egovframework.com.cmm.service.Globals; +import egovframework.cross.rss.service.RssFeedVO; +import egovframework.cross.rss.view.RssFeedView; + +/** + * RSS 피드 Controller + * + * @since 2022. 2. 16 + * @author 임종호 + * + * <PRE> + * ----------------------- + * 개정이력 + * 2022. 2. 16 임종호 : 최초작성 + * </PRE> + */ +@Controller +public class RssFeedController { + + @Autowired + private RssFeedView rssFeedView; + + /** + * RSS Feed + * @Author : 임종호 + * @Date : 2022. 2. 16 + * @Method Name : atom + * @return : AtomFeedView + */ + @RequestMapping(value = "/rss.do") + public RssFeedView atom(Model model) { + // 임시 데이터 + RssFeedVO vo = new RssFeedVO(); + vo.setId(""); + vo.setPublished(new Date()); + vo.setTitle("제목1111111111"); + // 링크 + Link link = new Link(); + link.setHref("http://naver.com"); + vo.setAlternateLinks(Collections.singletonList(link)); + + // 내용 + Content content = new Content(); + content.setValue("<div>내요용요</div>"); + content.setType("html"); + vo.setContents(Collections.singletonList(content)); + + // 분류 + Category category = new Category(); + category.setTerm("카테고리11"); + vo.setCategories(Collections.singletonList(category)); + + // 작성자 + SyndPerson author = new Person(); + author.setName("작성자1"); + vo.setAuthors(Collections.singletonList(author)); + + List<RssFeedVO> list = new ArrayList<RssFeedVO>(); + list.add(vo); + + model.addAttribute("datas", list); + + return rssFeedView; + } +} Property changes on: base3.10/src/main/java/egovframework/cross/rss/web/RssFeedController.java ___________________________________________________________________ Added: svn:mime-type + text/plain Index: base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO.java =================================================================== --- base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO.java (nonexistent) +++ base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO.java (revision 63) @@ -0,0 +1,48 @@ +package egovframework.cross.rss.service; + +import java.io.Serializable; + +import com.rometools.rome.feed.atom.Entry; + +/** + * RSS Feed VO + * + * @since 2022. 2. 16 + * @author 임종호 + * + * <PRE> + * ----------------------- + * 개정이력 + * 2022. 2. 16 임종호 : 최초작성 + * </PRE> + */ +public class RssFeedVO extends Entry implements Serializable { + + /** + * + */ + private static final long serialVersionUID = 1L; + + private String feedId; + private String feedTitle; + private String feedIcon; + + public String getFeedId() { + return feedId; + } + public void setFeedId(String feedId) { + this.feedId = feedId; + } + public String getFeedTitle() { + return feedTitle; + } + public void setFeedTitle(String feedTitle) { + this.feedTitle = feedTitle; + } + public String getFeedIcon() { + return feedIcon; + } + public void setFeedIcon(String feedIcon) { + this.feedIcon = feedIcon; + } +} \ No newline at end of file Property changes on: base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO.java ___________________________________________________________________ Added: svn:mime-type + text/plain Index: base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO2.java =================================================================== --- base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO2.java (nonexistent) +++ base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO2.java (revision 63) @@ -0,0 +1,94 @@ +package egovframework.cross.rss.service; + +import java.util.Date; + +/** + * RSS Feed VO + * + * @since 2022. 2. 16 + * @author 임종호 + * + * <PRE> + * ----------------------- + * 개정이력 + * 2022. 2. 16 임종호 : 최초작성 + * </PRE> + */ +public class RssFeedVO2 { + /** 아이디 */ + private String id; + + /** 제목 */ + private String title; + + /** 등록일 */ + private Date published; + + /** 내용 */ + private String content; + + /** 분류 */ + private String category; + + /** 작성자 */ + private String author; + + /** 링크 */ + private String link; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public Date getPublished() { + return published; + } + + public void setPublished(Date published) { + this.published = published; + } + + public String getContent() { + return content; + } + + public void setContent(String content) { + this.content = content; + } + + public String getCategory() { + return category; + } + + public void setCategory(String category) { + this.category = category; + } + + public String getAuthor() { + return author; + } + + public void setAuthor(String author) { + this.author = author; + } + + public String getLink() { + return link; + } + + public void setLink(String link) { + this.link = link; + } +} \ No newline at end of file Property changes on: base3.10/src/main/java/egovframework/cross/rss/service/RssFeedVO2.java ___________________________________________________________________ Added: svn:mime-type + text/plain Index: base3.10/src/main/java/egovframework/cross/rss/view/RssFeedView.java =================================================================== --- base3.10/src/main/java/egovframework/cross/rss/view/RssFeedView.java (nonexistent) +++ base3.10/src/main/java/egovframework/cross/rss/view/RssFeedView.java (revision 63) @@ -0,0 +1,56 @@ +package egovframework.cross.rss.view; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.springframework.http.MediaType; +import org.springframework.stereotype.Component; +import org.springframework.web.servlet.view.feed.AbstractAtomFeedView; + +import com.rometools.rome.feed.atom.Category; +import com.rometools.rome.feed.atom.Content; +import com.rometools.rome.feed.atom.Entry; +import com.rometools.rome.feed.atom.Feed; +import com.rometools.rome.feed.atom.Link; +import com.rometools.rome.feed.atom.Person; +import com.rometools.rome.feed.synd.SyndPerson; + +import egovframework.com.cmm.service.Globals; +import egovframework.cross.rss.service.RssFeedVO; + +/** + * Atom Feed View + * + * @since 2022. 2. 16 + * @author 임종호 + * + * <PRE> + * ----------------------- + * 개정이력 + * 2022. 2. 16 임종호 : 최초작성 + * </PRE> + */ +@Component +public class RssFeedView extends AbstractAtomFeedView { + + @Override + protected void buildFeedMetadata(Map<String, Object> model, Feed feed, HttpServletRequest request) { + setContentType(MediaType.APPLICATION_XML_VALUE); + feed.setId(Globals.SITE_ADDRESS); + feed.setTitle(Globals.SITE_NAME); + feed.setIcon(Globals.SITE_ADDRESS + "/images/user/favicon.ico"); + } + + @Override + protected List buildFeedEntries(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { + List<RssFeedVO> datas = (List<RssFeedVO>) model.get("datas"); + return datas; + } + +} Property changes on: base3.10/src/main/java/egovframework/cross/rss/view/RssFeedView.java ___________________________________________________________________ Added: svn:mime-type + text/plain Index: base3.10/src/main/java/egovframework/cross/content/web/ContentController.java =================================================================== --- base3.10/src/main/java/egovframework/cross/content/web/ContentController.java (nonexistent) +++ base3.10/src/main/java/egovframework/cross/content/web/ContentController.java (revision 63) @@ -0,0 +1,32 @@ +package egovframework.cross.content.web; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +import egovframework.rte.fdl.cmmn.exception.EgovBizException; + +/** + * 컨텐츠 페이지 Controller + * @since 2022. 2. 15 + * @author 임종호 + * <PRE> + * ----------------------- + * 개정이력 + * 2022. 2. 15 임종호 : 최초작성 + * </PRE> + */ +@Controller +public class ContentController { + + /** + * about 페이지 + * @Author : 임종호 + * @Date : 2022. 2. 15 + * @Method Name : selectContentAbout + * @return : String + */ + @RequestMapping(value = "/content/about.do") + public String selectContentAbout() throws EgovBizException { + return ".defaultSubLayout/cross/content/about"; + } +} Property changes on: base3.10/src/main/java/egovframework/cross/content/web/ContentController.java ___________________________________________________________________ Added: svn:mime-type + text/plain Index: base3.10/src/main/java/egovframework/com/cmm/service/Globals.java =================================================================== --- base3.10/src/main/java/egovframework/com/cmm/service/Globals.java (revision 62) +++ base3.10/src/main/java/egovframework/com/cmm/service/Globals.java (revision 63) @@ -23,6 +23,10 @@ public static final String DB_TYPE = EgovProperties.getProperty("Globals.DbType"); //메인 페이지 public static final String MAIN_PAGE = EgovProperties.getProperty("Globals.MainPage"); + //사이트 주소 + public static final String SITE_ADDRESS = EgovProperties.getProperty("Globals.SiteAddres"); + //사이트명 + public static final String SITE_NAME = EgovProperties.getProperty("Globals.SiteName"); //ShellFile 경로 public static final String SHELL_FILE_PATH = EgovProperties.getPathProperty("Globals.ShellFilePath"); //퍼로퍼티 파일 위치 @@ -55,5 +59,4 @@ //SMS 정보 프로퍼티 위치 public static final String SMSDB_CONF_PATH = EgovProperties.getPathProperty("Globals.SmsDbConfPath"); - } Index: base3.10/src/main/resources/egovframework/egovProps/globals.properties =================================================================== --- base3.10/src/main/resources/egovframework/egovProps/globals.properties (revision 62) +++ base3.10/src/main/resources/egovframework/egovProps/globals.properties (revision 63) @@ -28,6 +28,10 @@ # MainPage Setting Globals.MainPage = /index.do +# SiteAddres Setting +Globals.SiteName = \ud06c\ub85c\uc2a4\ub85c\ub4dc \uc6f9\uc9c4 +Globals.SiteAddres = http://iknit.co.kr:18082 + # \uc704\uc800\ub4dc \uc0ac\uc6a9\uc2dc \ub370\uc774\ud130\ubca0\uc774\uc2a4 \uad00\ub828 \uc124\uc815\uc744 \ubd88\ub7ec\uc634 # KISA \uac80\uc99d (2019\ub144 11\uc6d4) - \uc911\uc694\uc815\ubcf4 \uc554\ud638\ud654 Index: base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-interceptor.xml =================================================================== --- base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-interceptor.xml (revision 62) +++ base3.10/src/main/webapp/WEB-INF/config/egovframework/springmvc/egov-com-interceptor.xml (revision 63) @@ -34,6 +34,8 @@ <mvc:exclude-mapping path="/editor/fileListView.do" /> <mvc:exclude-mapping path="/cop/cmt/*/selectArticleCommentList.do" /> <mvc:exclude-mapping path="/menu/program/ProgrmListTreeSelect.do" /> + <!-- RSS 피드 --> + <mvc:exclude-mapping path="/rss.do" /> <bean class="egovframework.com.cmm.interceptor.AuthenticInterceptor" /> </mvc:interceptor> </mvc:interceptors> Index: base3.10/src/main/webapp/WEB-INF/tiles/layouts/defaultLayout.jsp =================================================================== --- base3.10/src/main/webapp/WEB-INF/tiles/layouts/defaultLayout.jsp (revision 62) +++ base3.10/src/main/webapp/WEB-INF/tiles/layouts/defaultLayout.jsp (revision 63) @@ -14,8 +14,8 @@ <meta property="og:title" content="크로스로드"> <meta property="og:url" content="http://crossroads.apctp.org/"> <meta property="og:description" content="크로스로드 웹진"> - <meta property="og:image" content="<c:url value='/images/user/logo.svg'/>"> - + <meta property="og:image" content="http://iknit.co.kr:18082/images/user/main_bg.jpg"> + <link rel="icon" href="<c:url value='/images/user/favicon.ico'/>" type="image/x-icon" /> <tiles:insertAttribute name="header" /> </head> Index: base3.10/pom.xml =================================================================== --- base3.10/pom.xml (revision 62) +++ base3.10/pom.xml (revision 63) @@ -678,6 +678,14 @@ <artifactId>lucy-xss-servlet</artifactId> <version>2.0.0</version> </dependency> + + <!-- RSS feed 생성 --> + <dependency> + <groupId>com.rometools</groupId> + <artifactId>rome</artifactId> + <version>1.18.0</version> + </dependency> + </dependencies> <build> <defaultGoal>install</defaultGoal>
Add a comment
List