-
전자정부프레임워크를 이용 쇼핑몰 만들기 #2자바웹프로그래밍/전자정부프레임워크 2020. 4. 25. 12:09728x90반응형
*도움이 되셨다면 광고 한번 클릭 부탁드립니다! 제게 큰 힘이됩니다!
1.mybatis - mapper설정
src/main/resources/egovframework/mapper 폴더안에 pet이라는 폴더를 생성하자
이 폴더안에 우리는 pet 쇼핑몰을 만들면서 필요한 sql.xml 파일들을 넣을것이다.
그리고 난후
sql을 관리할것이므로 정부프레임워크에서 이미 설정해놓은 context-mapper.xml을
열어 우리만에 sql을 관리하기위해 따로 설정해보자
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd"> <!-- 실행환경에서 빈이름 참조(EgovAbstractDAO) --> <bean id="egov.lobHandler" class="org.springframework.jdbc.support.lob.DefaultLobHandler" lazy-init="true" /> <!-- Mybatis setup for Mybatis Database Layer --> <bean id="egov.sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="egov.dataSource"/> <property name="configLocation" value="classpath:/egovframework/mapper/config/mapper-config.xml" /> <property name="mapperLocations"> <list> <value>classpath:/egovframework/mapper/com/**/*_${Globals.DbType}.xml</value> </list> </property> </bean> <!-- Mybatis Session Template --> <bean id="egov.sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <constructor-arg ref="egov.sqlSession"/> </bean> </beans>
위내용은 아래와같이 수정해주자
<list> <value>classpath:/egovframework/mapper/com/**/*_${Globals.DbType}.xml</value> <value>classpath:/egovframework/mapper/pet/**/*_${Globals.DbType}.xml</value> </list>
해석해보자면 저경로 안에 있는 *_mysql.xml 을 모두 스캔하라는 의미이다. 그후
아까 만든 pet 폴더안에 bbs폴더를 만든후
PetArticle_SQL_mysql.xml 을 만들자 여기서 namespace는 service단에서 접근하는 클래스? 쯤으로 알고있으면된다.
나중에 기회가 되면 자세히 설명하겠다.
<?xml version="1.0" encoding="UTF-8"> <!DOCYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" <mapper namespace="ArticleDAO"> </mapper>
2.Login sercurity
globals.properties 에 auth 방식을 security로 변경
# 운영서버 타입(WINDOWS, UNIX) Globals.OsType = WINDOWS # DB서버 타입(mysql, oracle, altibase, tibero, cubrid, maria, postgres) - datasource 및 sqlMap 파일 지정에 사용됨 Globals.DbType = mysql # 권한 인증방식(dummy, session, security) - 사용자의 로그인시 인증 방식을 결정함 # dummy : 더미 방식으로 사용자 권한을 인증함 # session : 세션 방식으로 사용자 권한을 인증함 # security : spring security 방식으로 사용자 권한을 인증함 Globals.Auth = security (adsbygoogle = window.adsbygoogle || []).push({}); # MainPage Setting
globals.properties을 설정하고 나면 로그인창이 나온다
아이디는 USER 비밀번호는 영어로 공통12 를 치고
접속해본다
이제는 왼쪽 파란 공간을 지우고 링크를 달것이다 일단
CRTL+SHIFT+R 을 눌룬뒤 EgovUnitLeft.jsp 을 찾는다.
안에있는 소스 <c:foreach>문을 삭제하자 <c:foreach>문은 jstl 문법으로 리스트를 받고 하나씩 돌려주는 태그이다.
<%@ page contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%> <!DOCTYPE html> <html lang="ko"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>eGovFrame 공통 컴포넌트</title> <link href="<c:url value='/css/egovframework/com/cmm/main.css' />" rel="stylesheet" type="text/css"> <style type="text/css"> link { color: #666666; text-decoration: none; } link:hover { color: #000000; text-decoration: none; } </style> </head> <body> <div id="lnb"> <ul class="lnb_title"> <a href="/pet/bbs/Articlelist.do" target="_content">자유게시판</a> </ul> </body> </html>
위와같이 EgovUnitLeft.jsp를 수정해준다 target="_content"을 하는것을 잊지말자
EgovUnitMain.jsp
<frameset frameborder="0" framespacing="0" rows="75, *, 45"> <frame name="_top" src="${pageContext.request.contextPath}/EgovTop.do" scrolling="no" title="헤더"> <frameset frameborder="0" framespacing="0" cols="20%, 80%"> <frame name="_left" src="${pageContext.request.contextPath}/EgovLeft.do" scrolling="yes" title="메뉴페이지"> <frame name="_content" src="${pageContext.request.contextPath}/EgovContent.do" title="메인페이지"> </frameset> <frame name="_bottom" src="${pageContext.request.contextPath}/EgovBottom.do" scrolling="no" title="푸터"> </frameset>
EgovUnitMain.jsp 을 보면 frame들이 나오고 frame태그중에 name이 _content 맵핑 되어있는곳에
우리는 게시판 목록을 보여주기위해 EgoviUnitLeft a태그에 target을 추가한것이다.
이제는 컨트롤러를 설정하고 Artilcelist.jsp를 사용자에게 보여줄것이다.
3.Controller 생성
위 그림과 같이 src/main/java/pet 폴더에 아래 그림과 같이 폴더경로를 만들어주고,
web폴더에 아래와 같이 Controller를 작성하자
ArticleController.java
package pet.com.bbs.web; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; @Controller @SuppressWarnings({ "rawtypes", "unchecked", "static-access" }) public class ArticleController { @RequestMapping("/pet/bbs/Articlelist.do") public String Articlelist(ModelMap model) throws Exception{ System.out.println("--------ssssssss--------------"); System.out.println("----------------------"); return "pet/bbs/Articlelist"; } }
controller bean 등록
WEB-INF/config/egovframework/springmvc/egov-com-servlet
egov-com-servlet.xml을 열자 그후 아래와같이 추가해준다
... <context:component-scan base-package="egovframework"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> </context:component-scan> <context:component-scan base-package="pet"> <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/> </context:component-scan> ...
위와같이 context:component-scan을 복붙하여 base-package="pet" 처럼 설정을 해준다
base-package="pet"에 의미는 위에 그림처럼 java 하위폴더인 pet폴더에 하위 내용들에 대해서 @controller 맵핑에 대한 모든 스캔을 진행한다는뜻이다.
이렇게 함으로써 스프링은 pet을 스캔하여 컨트롤을 인식할수 있게 만들어준다.
component-scan에대해 잘모른다면 아래의 링크를 참고하자
webapp/WEB-INF/jsp 경로에 아래와같이 폴더경로 및 Articlelist.jsp를 작성하자
Articlelist.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Insert title here</title> </head> <body> <h5>나는 리스트다 ㄱㄱㄱㄱㄱㄱㄱㄱ</h5> </body> </html>
이제 서버를 실행시키고 아래와 같이 자유게시판을 클릭하였을때 리스트가 잘 나오는지 확인하자
여기까지 기본셋팅이 끝나고 앞으로는 게시판을 만들기 위한
컨트롤러,서비스,vo,dao,mybatis등을 속성으로 한번 알아보자
*다음글 예고~
VO란?
- 데이터 그 자체로 의미 있는 것을 담고 있는 객체이다.
- DTO와 동일한 개념이나 차이점은 Read–Only 속성 객체이다.
- 간단한 독립체( Entity )를 의미하는 작은 객체를 의미한다.
- 관계데이터베이스의 레코드에 대응되는 자바클래스이다.
라고 적혀있는데 그냥 쉽게 생각하자면
데이터 상자라고 생각하면된다. 필요할때마다 상자안에 변수이름과 데이터를 매핑해서
들고다니면서 필요한 데이터만 사용? 하도록 하는 객체라고 생각한다.
728x90반응형'자바웹프로그래밍 > 전자정부프레임워크' 카테고리의 다른 글
전자정부프레임워크를 이용 쇼핑몰 만들기 #4-select (0) 2020.04.26 전자정부프레임워크를 이용 쇼핑몰 만들기 #3 (2) 2020.04.25 전자정부프레임워크를 이용 쇼핑몰 만들기 #1 (0) 2020.04.15 전자정부프레임워크 뼛속까지 알아보자#5 -(jstl) (0) 2020.04.06 전자정부프레임워크 뼛속까지 알아보자#4 (0) 2020.04.06