2017년 5월 19일 금요일

확인해볼 것 -pom에서 와르가 안생김

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>homepage</groupId>
<artifactId>homepage</artifactId>
<packaging>war</packaging>
<version>2.0.0</version>
<name>homepage</name>
<url>http://maven.apache.org</url>

<properties>
<spring.maven.artifact.version>3.0.5.RELEASE</spring.maven.artifact.version>
</properties>

<repositories>
<repository>
<id>mvn2</id>
<url>http://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>http://www.egovframe.go.kr/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>

<repository>
<id>thirdparty</id>
<url>http://192.168.1.172/nexus/content/repositories/thirdparty</url>
</repository>
</repositories>

<dependencies>

<!-- KSW Begin -->


<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
  <dependency>
<groupId>cubrid</groupId>
<artifactId>cubrid-jdbc</artifactId>
<version>8.4.0</version>
</dependency>

<!-- KSW End -->
<!-- spring 라이브러리 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>org.springframework.webflow</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<!-- spring 라이브러리 끝 -->

<!-- spring security 라이브러리 시작 -->
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-acl</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core-tiger</artifactId>
<version>2.0.4</version>
</dependency>
<!-- spring security 라이브러리 끝 -->

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>

<!-- common-annotations for JSE 5 -->
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.6</version>
</dependency>

<!-- AOP -->
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>

<!-- ibatis -->
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-sqlmap</artifactId>
<version>2.3.4.726</version>
</dependency>

<!-- logging -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.3alpha-8</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>net.sf</groupId>
<artifactId>log4jdbc3</artifactId>
<version>1.1</version>
</dependency>

<!-- validation -->
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.3.1</version>
</dependency>

<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.9</version>
</dependency>

<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.8</version>
</dependency>

<dependency>
<groupId>commons-vfs</groupId>
<artifactId>commons-vfs</artifactId>
<version>1.0</version>
</dependency>

<!-- 실행환경 라이브러리 -->
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.cmmn</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.ptl.mvc</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.property</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.string</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.security</artifactId>
<version>2.0.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.excel</artifactId>
<version>2.0.0</version>
</dependency>
<!-- 실행환경 라이브러리 끝 -->


<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>

<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.7</version>
</dependency>

<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.10.0</version>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-core</artifactId>
<version>0.9.9</version>
</dependency>
<dependency>
<groupId>net.sf.jxls</groupId>
<artifactId>jxls-reader</artifactId>
<version>0.9.9</version>
</dependency>

<!-- cache -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.1</version>
</dependency>
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-terracotta</artifactId>
<version>2.1.1</version>
</dependency>
<!-- cache end -->

<!-- Scheduling -->
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-oracle</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-weblogic</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jboss</artifactId>
<version>1.8.5</version>
</dependency>
<!-- Scheduling end-->

<!-- easymock -->
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.0</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
</dependency>

<!-- dbunit -->
<!--
<dependency>
   <groupId>org.dbunit</groupId>
   <artifactId>dbunit</artifactId>
   <version>2.4.8</version>
</dependency>
-->

  <!-- emma -->
<!--
<dependency>
<groupId>emma</groupId>
<artifactId>emma</artifactId>
<version>2.1.5320</version>
</dependency>
-->

<!-- 공통컴포넌트 시작 -->

<!-- 게시판 생성시 사용 TokenStream -->
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.4</version>
</dependency>

<!-- 우편번호를 위한 라이브러리 -->
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
</dependency>

<!-- 요소기술 달력을 위한 라이브러리 -->
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>4.8</version>
</dependency>

<!-- FTP용 3rd party 라이브러리 -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.0.1</version>
</dependency>

<!-- Email -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.2</version>
</dependency>

<!-- Cross-Site Scripting -->
<!-- tomcat에서 사용시 주석처리 -->
<!--
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
-->

<!-- LDAP SDK -->
<dependency>
<groupId>ldapsdk</groupId>
<artifactId>ldapsdk</artifactId>
<version>4.1</version>
</dependency>

<!-- PDF변환용 라이브러리 -->
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter</artifactId>
<version>2.2.1</version>
</dependency>

<!-- XML스키마를 자바클래스로 생성하는 라이브러리 -->
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xbean</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>egovframework.com.ems</groupId>
<artifactId>sndng-mail</artifactId>
<version>1.0</version>
</dependency>

<!-- fileupload -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>

<!-- EXCEL -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.2-FINAL</version>
</dependency>

<!-- Twitter -->
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.1.3</version>
</dependency>

<!-- Ajax -->
<dependency>
<groupId>net.sourceforge.ajaxtags</groupId>
<artifactId>ajaxtags</artifactId>
<version>1.5-beta-0.2</version>
</dependency>

<!-- xmlParserAPI -->
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-ext</artifactId>
<version>1.7</version>
</dependency>

<!--  mysql -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
</dependency>

<!-- hsqldb driver -->
<!--
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
-->

<!-- 3rd party 라이브러리로 별도의 설치 필요 -->
<!-- oracle 10g driver -->
<!--
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>14</version>
</dependency>
-->
<!-- altibase driver -->
<!--
<dependency>
<groupId>altibase</groupId>
<artifactId>altibase-jdbc-driver</artifactId>
<version>5.1.3.18</version>
</dependency>
-->

<!-- tibero driver -->
<!--
<dependency>
<groupId>com.tmax.tibero</groupId>
<artifactId>tibero-jdbc</artifactId>
<version>3.0</version>
</dependency>
-->

<!--  M-Gov (SMS Service API) -->
<!-- <dependency>
<groupId>smeapi</groupId>
<artifactId>smeapi</artifactId>
<version>2.5</version>
</dependency> -->
<!--
-->
<!-- GPKI인증서 로그인처리 라이브러리 -->
<!-- <dependency>
<groupId>egovframework.com.cmm.uat</groupId>
<artifactId>gpkisecureweb</artifactId>
<version>1.0.4.9</version>
</dependency>
<dependency>
<groupId>egovframework.com.cmm.uat</groupId>
<artifactId>libgpkiapi_jni</artifactId>
<version>1.4.0.0</version>
</dependency> -->
<!--
  -->
<!-- 3rd party 라이브러리로 별도의 설치 필요 끝 -->

<!-- 공통컴포넌트 끝 -->
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib-ext-spring</artifactId>
<version>1.0.2</version>
</dependency>

<dependency>
   <groupId>com.navercorp.lucy</groupId>
   <artifactId>lucy-xss</artifactId>
   <version>1.6.3</version>
</dependency>

<dependency>
   <groupId>com.navercorp.lucy</groupId>
   <artifactId>lucy-xss-servlet</artifactId>
   <version>2.0.0</version>
</dependency>

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20140107</version>
</dependency>

<!-- GSON - 20160627_임재록 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.6.2</version>
</dependency>

<dependency>
 <groupId>org.freemarker</groupId>
 <artifactId>freemarker</artifactId>
 <version>2.3.25-incubating</version>
</dependency>

<dependency>
   <groupId>net.sf.barcode4j</groupId>
   <artifactId>barcode4j</artifactId>
   <version>2.1</version>
</dependency>

<!-- jackson - 20170422_윤혁신 -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.12</version>
</dependency>

<!-- itextpdf - 20170422_윤혁신 -->
<!-- <dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.11</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-pdfa</artifactId>
<version>5.5.11</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-xtra</artifactId>
<version>5.5.11</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.11</version>
</dependency>  -->

</dependencies>
<build>
<defaultGoal>compile</defaultGoal>
<directory>${basedir}/target</directory>
<finalName>homepage</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
                        <target>1.5</target>
                        <encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
</configuration>
<dependencies>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
</dependencies>
</plugin>
<!-- EMMA   -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
</plugin>
<!-- PMD manven plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- EMMA -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>false</skipTests>
<forkMode>once</forkMode>
<reportFormat>xml</reportFormat>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/*Suite.java</exclude>
</excludes>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<!--  JavaDoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</build>
<reporting>
<outputDirectory>${basedir}/target/site</outputDirectory>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.0.1</version>
<reportSets>
<reportSet>
<id>sunlink</id>
<reports>
<report>javadoc</report>
</reports>
<inherited>true</inherited>
<configuration>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
</links>
</configuration>
</reportSet>
</reportSets>
</plugin>
<!-- JUnit Test Results & EMMA Coverage Reporting -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>surefire-report-maven-plugin</artifactId>
<inherited>true</inherited>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- PMD manven plugin -->
<!--
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
<configuration>
<rulesets>
<ruleset>./Ruleset.xml</ruleset>
</rulesets>
<linkXref>true</linkXref>
<sourceEncoding>${encoding}</sourceEncoding>
<minimumTokens>100</minimumTokens>
<targetJdk>${compileSource}</targetJdk>
</configuration>
<reportSets>
<reportSet>
<reports>
<report>pmd</report>
</reports>
</reportSet>
</reportSets>
</plugin>
-->
<!-- Generating JavaDoc Report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>512m</maxmemory>
<encoding>${encoding}</encoding>
<docencoding>${encoding}</docencoding>
<charset>${encoding}</charset>
</configuration>
</plugin>
<!-- Generating Java Source in HTML -->
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
<configuration>
<inputEncoding>${encoding}</inputEncoding>
<outputEncoding>${encoding}</outputEncoding>
<linkJavadoc>true</linkJavadoc>
<javadocDir>apidocs</javadocDir>
</configuration>
</plugin>
</plugins>
</reporting>
</project>

2017년 5월 18일 목요일

테스트해보기 - 개인

http://bryan7.tistory.com/402

서버 재시작 없이 mybatis mapper xml 파일을 reloading 하는 클래스



  •     <bean id="sqlSessionFactory" class="com.myapp.home.config.mybatis.RefreshableSqlSessionFactoryBean"> <!-- 서버 재시작 없이 mybatis mapper xml 파일을 reloading 하는 클래스 -->
  •         <property name="dataSource" ref="dataSource-log4jdbc" />
  •         <property name="typeAliasesPackage" value="com.myapp.home" />
  •         <property name="configLocation" value="classpath:mybatis/mybatis-config.xml" />
  •         <property name="interval" value="5000" /> <!-- mapper xml 파일을 재로딩 하는 간격 -->
  •         <property name="mapperLocations" value="classpath:com/examples/home/**/dao/*Mapper.xml" />
  •     </bean>


  • 2017년 5월 9일 화요일

    콤보박스

    <#include "/base/include/header.ftl" encoding="UTF-8" parse=true>

    <script type="text/javascript">

    var ctprvn_combo_store; // 지역 store
    var sigungu_combo_store; // 시군구 store
    var dong_combo_store; // 읍면동 store

    var ctprvn_grid_combo_store; // 지역 store
    var sigungu_grid_combo_store; // 시군구 store
    var dong_grid_combo_store; // 읍면동 store

    var zip_rowidx = 0;

    var zipJsonStore;
    var zipGrid;

    Ext.onReady(function() {
    // 지역 combobox (서울, 경기, 강원 등)
    Ext.create('Ext.form.field.ComboBox', {
    id : 'sel_ctprvn',
       typeAhead: true,
       transform: 'sel_ctprvn',
       width: 100,
       editable : false,
       forceSelection: true,
           listeners:{
               'select': function (combo,  record,  index) {
               
                if(combo.value == '') {
                Ext.getCmp('sel_signgu').setValue('');            
                Ext.getCmp('sel_dong').setValue('');
                sigungu_combo_store.removeAll();
                dong_combo_store.removeAll();
                sigungu_combo_store.load({ params : { ctprvn : combo.value }});
                } else {
                Ext.getCmp('sel_dong').setValue('');
                dong_combo_store.removeAll();
                sigungu_combo_store.load({ params : { ctprvn : combo.value }});
                }
               
               }
            }  
    });

    // 1. 데이터 모델 정의 JSON 데이터
    Ext.define('combo_sigungu', {
       extend: 'Ext.data.Model',
       fields: [
        {name: 'signgu', mapping: 'signgu'}
       ]
    });

       // 2. Store 정의
       sigungu_combo_store = Ext.create('Ext.data.Store', {
           model: 'combo_sigungu', // 선언한 모델 정의..
           proxy: {
               type: 'ajax',
               url: '<@spring.url "/sample/zip/listSigngu.do" />',
               headers: { 'Accept': 'application/json' },
               reader: {            
                   root: 'sigungulist' // JSON 데이터의 ROOT
               },
               autoLoad : false    
           }
       });

    // 시군구 combobox
       var signgu = Ext.create('Ext.form.field.ComboBox', {
           id : 'sel_signgu',
           typeAhead: true,
           displayField: 'signgu',
           valueField: 'signgu',
       editable : false,
       forceSelection: true,      
           width: 230,
           store: sigungu_combo_store,
           renderTo : 'div_signgu',
           listeners:{
               'select': function (combo,  record,  index) {
                Ext.getCmp('sel_dong').setValue('');
                dong_combo_store.load({ params : { signgu : combo.value }});
               }
            },
           queryMode: 'local'
       });


    // 1. 데이터 모델 정의 JSON 데이터
    Ext.define('combo_dong', {
       extend: 'Ext.data.Model',
       fields: [
        {name: 'dong', mapping: 'dong'}
       ]
    });

       // 2. Store 정의
       dong_combo_store = Ext.create('Ext.data.Store', {
           model: 'combo_dong', // 선언한 모델 정의..
           proxy: {
               type: 'ajax',
               url: '<@spring.url "/sample/zip/listDong.do" />',
               headers: { 'Accept': 'application/json' },
               reader: {            
                   root: 'donglist' // JSON 데이터의 ROOT
               },
               autoLoad : false    
           }
       });

    // 읍면동 combobox
    var dong = Ext.create('Ext.form.field.ComboBox', {
           id : 'sel_dong',
           typeAhead: true,
       editable : false,
       forceSelection: true,
       lazyRender: true,
           width: 250,
           renderTo : 'div_dong',
           store: dong_combo_store,      
           queryMode: 'local',
           displayField: 'dong',
           valueField: 'dong'          

    });

    // 행추가
    Ext.create('Ext.Button', {
    id: 'btn_add',
    renderTo: 'div_add',
    text: '&nbsp;추가',
    tooltip: '추가',
    iconCls: 'icon_add',
    handler: function(){

                    var r = Ext.create('zipgrid', {
                     
                    });
                    zipJsonStore.insert(0, r);
                    cellEditing.startEditByPosition({row: 0, column: 0});
    }
    });

    // 초기화
    Ext.create('Ext.Button', {
    id: 'btn_clear',
    renderTo: 'div_clear',
    text: '&nbsp;초기화',
    tooltip: '초기화',

    handler: function(){
    zipJsonStore.removeAll();
    }
    });

        var cellEditing = Ext.create('Ext.grid.plugin.CellEditing', {
            clicksToEdit: 1
        });
       

    // 1. 데이터 모델 정의 JSON 데이터
    Ext.define('combo_grid_ctprvn', {
       extend: 'Ext.data.Model',
       fields: [
        {name: 'ctprvn', mapping: 'ctprvn'}
       ]
    });

       // 2. Store 정의
       ctprvn_grid_combo_store = Ext.create('Ext.data.Store', {
           model: 'combo_grid_ctprvn', // 선언한 모델 정의..
           proxy: {
               type: 'ajax',
               url: '<@spring.url "/sample/zip/listCtprvn.do" />',
               headers: { 'Accept': 'application/json' },
               reader: {            
                   root: 'ctprvnlist' // JSON 데이터의 ROOT
               },
               autoLoad : false    
           }
       });


    // 1. 데이터 모델 정의 JSON 데이터
    Ext.define('combo_grid_sigungu', {
       extend: 'Ext.data.Model',
       fields: [
        {name: 'signgu', mapping: 'signgu'}
       ]
    });

       // 2. Store 정의
       sigungu_grid_combo_store = Ext.create('Ext.data.Store', {
           model: 'combo_grid_sigungu', // 선언한 모델 정의..
           proxy: {
               type: 'ajax',
               url: '<@spring.url "/sample/zip/listSigngu.do" />',
               headers: { 'Accept': 'application/json' },
               reader: {            
                   root: 'sigungulist' // JSON 데이터의 ROOT
               },
               autoLoad : false    
           }
       });


    // 1. 데이터 모델 정의 JSON 데이터
    Ext.define('combo_grid_dong', {
       extend: 'Ext.data.Model',
       fields: [
        {name: 'dong', mapping: 'dong'}
       ]
    });

       // 2. Store 정의
       dong_grid_combo_store = Ext.create('Ext.data.Store', {
           model: 'combo_grid_dong', // 선언한 모델 정의..
           proxy: {
               type: 'ajax',
               url: '<@spring.url "/sample/zip/listDong.do" />',
               headers: { 'Accept': 'application/json' },
               reader: {            
                   root: 'donglist' // JSON 데이터의 ROOT
               },
               autoLoad : false    
           }
       });

       
        // 1. 데이터 모델 정의 JSON 데이터
      Ext.define('zipgrid', {
            extend: 'Ext.data.Model',
            fields: [
            {name: 'ctprvn1', mapping: 'ctprvn1'},
            {name: 'signgu1', mapping: 'signgu1'},
            {name: 'dong1', mapping: 'dong1'}
            ]
        });

        // 2. Store 정의
        zipJsonStore = Ext.create('Ext.data.Store', {
            model: 'zipgrid', // 선언한 모델 정의..
            remoteSort: false,
            proxy: {
                type: 'ajax',
                url: 'none',
                headers: { 'Accept': 'application/json' }
            }
        });


    // 3. 주소 그리드
    zipGrid = Ext.create('Ext.grid.Panel', {
          title: 'Grid Combobox 예제',
          id : 'zip_grid',
            width: '100%',
            height: 520,
            store: zipJsonStore,
    columnLines: true,
    disableSelection: false,
            loadMask: true,
            viewConfig: {
                trackOver: true,
                stripeRows: true,
                forceFit: true
               
            },
            // grid columns
            columns:[
    {
               header: '지역',
               dataIndex: 'ctprvn1',
               width: 100,
               align: 'center',
               editor: {
                   xtype: 'combobox',
                   typeAhead: true,
                   triggerAction: 'all',
                   selectOnTab: true,
                   store: ctprvn_grid_combo_store,
    listeners: {
       select: function(combo, record, index) {
                dong_grid_combo_store.removeAll();
                sigungu_grid_combo_store.load({
                params : { ctprvn : combo.value },
                callback : function() {
                zipJsonStore.getAt(zip_rowidx).set('signgu1','');
                zipJsonStore.getAt(zip_rowidx).set('dong1','');
                }
                });
          cellEditing.completeEdit();
       }
    },
           displayField: 'ctprvn',
           valueField: 'ctprvn',
                   lazyRender: true,
                   editable: false
               }
    }, {

               header: '시군구',
               dataIndex: 'signgu1',
               width : 220,
               align: 'center',
               editor: {
                   xtype: 'combobox',
                   typeAhead: true,
                   selectOnTab: true,
                   store: sigungu_grid_combo_store,
    listeners: {
       select: function(combo, record, index) {
                dong_grid_combo_store.load({
                params : { signgu : combo.value },
                callback : function() {
                zipJsonStore.getAt(zip_rowidx).set('dong1','');
                }
                });          
          cellEditing.completeEdit();
       }
    },
    valueField: 'signgu',
                        displayField: 'signgu',
                        queryMode: 'local',
                   lazyRender: true,
                   editable: false
               }  
    }, {
               header: '읍면동',
               dataIndex: 'dong1',
               flex: 1,
               align: 'center',
               editor: {
                   xtype: 'combobox',
                   typeAhead: true,
                   triggerAction: 'all',
                   selectOnTab: true,
                   store: dong_grid_combo_store,
    listeners: {
       select: function(combo, record, index) {
          cellEditing.completeEdit();
       }
    },
    queryMode: 'local',
    valueField: 'dong',
                        displayField: 'dong',
                   lazyRender: true,
                   editable: false
               }
    }
            ],
            plugins: [cellEditing],
            renderTo: 'div_zip_grid' // 그리드에 매핑하는 DOM 객체 (DIV 태그)
        });
       
        // 주소 combobox 검색
        zipGrid.on('beforeedit',function(editor,e,opt) {
        zip_rowidx = e.rowIdx;
       
        var ctprvn1 = e.record.get('ctprvn1');
        if(e.field == 'signgu1') {
       
        sigungu_grid_combo_store.removeAll();
        sigungu_grid_combo_store.load({ params : { ctprvn : ctprvn1}})
        }

        var signgu1 = e.record.get('signgu1');
        if(e.field == 'dong1') {
        dong_grid_combo_store.removeAll();
        dong_grid_combo_store.load({ params : { signgu : signgu1} })
        }
           
        }); //

    }); //Ext.onReady End.

    </script>

    <h1>ComboBox 예제</h1><br>
    <div class="adminPage">
    주소 선택(select box)
    <table width="600">
    <tr>
    <td>
    <select name="sel_ctprvn" id="sel_ctprvn">
    <option value=""> </option>
    <#if ctprvnList?has_content>
    <#list ctprvnList as item>
    <option value="${item.ctprvn?default('')}">${item.ctprvn?default('')}</option>
    </#list>
    </#if>
    </select>
    </td>
    <td>
    <div id="div_signgu"/>
    </td>
    <td>
    <div id="div_dong"/>
    </td>
    </tr>
    </table>
    <br/><br/>
    <table width="700">
    <tr>
    <td width="70" align="left"><div id="div_add"/></td>
    <td width="630" align="left"><div id="div_clear"/></td>
    </tr>
    <tr>
    <td colspan="2"><div id="div_zip_grid"/></td>
    </tr>
    </table>
    </div>