ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 전자정부프레임워크를 이용 쇼핑몰 만들기 #2
    자바웹프로그래밍/전자정부프레임워크 2020. 4. 25. 12:09
    728x90
    반응형

     

    *도움이 되셨다면 광고 한번 클릭 부탁드립니다! 제게 큰 힘이됩니다!

     

     

    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에대해 잘모른다면 아래의 링크를 참고하자

     

     

    hipdizzy.tistory.com/57

     

    context:include-filter && context:exclude-filter&&context:componet-scan이란?

    Context:componet-scan - componet scan을 지원하는 태그이다. - Bean이 될 수 있는 모든 Component들을 자동으로 찾아 Bean 컨테이너에 등록한다. - 단, 의존성 관계 등록은 따로 하지않는다. - 특정 패키지 안의..

    hipdizzy.tistory.com

     

     

     

     

     

     

    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
    반응형
Designed by Tistory.