반응형

 

연습용

 

 

테이블 생성 및 데이터 삽입

---------------------------------------------
--공통코드정보
CREATE TABLE COM_CODE_INFO(
    COM_CODE VARCHAR2(10),
    COM_CODE_NM VARCHAR2(150),
    DESCRIPTIONS VARCHAR2(300),
    CONSTRAINT PK_CCI PRIMARY KEY(COM_CODE)
);

INSERT INTO COM_CODE_INFO
VALUES('ENT01','전사관계자구분','전사관계자구분');
INSERT INTO COM_CODE_INFO
VALUES('CUR01','현직무구분','현직무구분');
INSERT INTO COM_CODE_INFO
VALUES('PFL01','프로필구분','프로필구분');
INSERT INTO COM_CODE_INFO
VALUES('CRE01','경력구분','경력구분');

SELECT COM_CODE, COM_CODE_NM, DESCRIPTIONS
FROM  COM_CODE_INFO
ORDER BY COM_CODE;

CREATE TABLE COM_DET_CODE_INFO(
    COM_DET_CODE VARCHAR2(10),
    COM_CODE VARCHAR2(10),
    COM_DET_CODE_NM VARCHAR2(150),
    DESCRIPTIONS VARCHAR2(300),
    CONSTRAINT PK_CDCI PRIMARY KEY(COM_DET_CODE),
    CONSTRAINT FK_CDCI FOREIGN KEY(COM_CODE) REFERENCES COM_CODE_INFO(COM_CODE)
);

INSERT INTO COM_DET_CODE_INFO
VALUES('ENT01001','ENT01','개인고객','개인고객');
INSERT INTO COM_DET_CODE_INFO
VALUES('ENT01002','ENT01','직원','직원');
INSERT INTO COM_DET_CODE_INFO
VALUES('CUR01001','CUR01','강사','강사');
INSERT INTO COM_DET_CODE_INFO
VALUES('CUR01002','CUR01','관리직원','관리직원');
INSERT INTO COM_DET_CODE_INFO
VALUES('PFL01001','PFL01','경력사항','경력사항');
INSERT INTO COM_DET_CODE_INFO
VALUES('PFL01002','PFL01','보유자격','보유자격');
INSERT INTO COM_DET_CODE_INFO
VALUES('CRE01001','CRE01','프로젝트','프로젝트');
INSERT INTO COM_DET_CODE_INFO
VALUES('CRE01002','CRE01','강의','강의');
------------------------------------------------

 

--두 개의 테이블을 내부 조인하기
SELECT C.COM_CODE, C.COM_CODE_NM, C.DESCRIPTIONS
    , D.COM_DET_CODE, D.COM_CODE, D.COM_DET_CODE_NM, D.DESCRIPTIONS
FROM COM_CODE_INFO C, COM_DET_CODE_INFO D
WHERE C.COM_CODE = D.COM_CODE;

--ANSI표준
SELECT C.COM_CODE, C.COM_CODE_NM, C.DESCRIPTIONS
    , D.COM_DET_CODE, D.COM_CODE, D.COM_DET_CODE_NM, D.DESCRIPTIONS
FROM COM_CODE_INFO C
INNER JOIN COM_DET_CODE_INFO D ON (C.COM_CODE = D.COM_CODE);

 

결과 화면1

 

 

 

  • create

ComCodeInfoVO.java

package kr.or.ddit.vo;

import java.util.List;

import lombok.Data;

//공통 코드 정보
@Data
public class ComCodeInfoVO {
	private String comCode;
	private String comCodeNm;
	private String descriptions;
	
	//COM_CODE_INFO : COM_DET_CODE_INFO = 1 : N
	private List<ComDetCodeInfoVO> comDetCodeInfoVOList;
}

 

 

ComDetCodeInfoVO.java

package kr.or.ddit.vo;

import lombok.Data;

//공통 상세 코드 정보
@Data
public class ComDetCodeInfoVO {
	private String comDetCode;
	private String comCode;
	private String comDetCodeNm;
	private String descriptions;
}

 

 

mybatisAlias.xml
</configuration> 안에 추가

<typeAlias type="kr.or.ddit.vo.ComCodeInfoVO" alias="comCodeInfoVO"/>
<typeAlias type="kr.or.ddit.vo.ComDetCodeInfoVO" alias="comDetCodeInfoVO"/>

 

 

ComCodeInfoController.java

package kr.or.ddit.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import kr.or.ddit.service.ComCodeInfoService;
import kr.or.ddit.vo.ComCodeInfoVO;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@RequestMapping("/comCodeInfo")
@Controller
public class ComCodeInfoController {

	@Autowired
	ComCodeInfoService comCodeInfoService;
	
	//등록 뷰
	@GetMapping("/create")
	public String create() {
		//forwarding
		return "comCodeInfo/create";
	}
	
	//입력 실행
	@PostMapping("/createPost")
	public String createPost(ComCodeInfoVO comCodeInfoVO) {
		log.info("createPost->comCodeInfoVO : " + comCodeInfoVO);
		
		int result = this.comCodeInfoService.createPost(comCodeInfoVO);
		log.info("createPost->result : " + result);
		
		//입력 후 상세로 이동
		return "redirect:/comCodeInfo/detail?comCode=" + comCodeInfoVO.getComCode();
	}
	
	//상세 뷰
	@GetMapping("/detail")
	public String detail(ComCodeInfoVO comCodeInfoVO) {
		//forwarding
		return "comCodeInfo/detail";
	}
	
	//수정 실행
	@PostMapping("/updatePost")
	public String updatePost(ComCodeInfoVO comCodeInfoVO) {
		//수정 후 상세로 이동
		return "redirect:/comCodeInfo/detail?comCode="+comCodeInfoVO.getComCode();
	}
	
	//삭제 실행
	@PostMapping("/deletePost")
	public String deletePost(ComCodeInfoVO comCodeInfoVO) {
		//삭제 후 목록으로 이동
		return "redirect:/comCodeInfo/list";
	}
	
	//목록 뷰
	@GetMapping("/list")
	public String list() {
		//forwarding
		return "comCodeInfo/list";
	}
}

 

 

ComCodeInfoService.java

package kr.or.ddit.service;

import java.util.List;
import java.util.Map;

import kr.or.ddit.vo.ComCodeInfoVO;

public interface ComCodeInfoService{
	
	//등록 뷰
	public List<ComCodeInfoVO> create();
	
	//입력 실행 
	public int createPost(ComCodeInfoVO comCodeInfoVO);
	
	//상세 뷰 
	public ComCodeInfoVO detail(ComCodeInfoVO comCodeInfoVO);
	
	//수정 실행 
	public int updatePost(ComCodeInfoVO comCodeInfoVO);
	
	//삭제 실행 
	public int deletePost(ComCodeInfoVO comCodeInfoVO);
	
	//목록 뷰 
	public List<ComCodeInfoVO> list(Map<String, Object> map);
}

 

 

ComCodeInfoServiceImpl.java

package kr.or.ddit.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import kr.or.ddit.mapper.ComCodeInfoMapper;
import kr.or.ddit.service.ComCodeInfoService;
import kr.or.ddit.vo.ComCodeInfoVO;

@Service
public class ComCodeInfoServiceImpl implements ComCodeInfoService{
	
	@Autowired
	ComCodeInfoMapper comCodeInfoMapper;
	
	//등록 뷰
	public List<ComCodeInfoVO> create(){
		return this.comCodeInfoMapper.create();
	}
	
	//입력 실행 
	public int createPost(ComCodeInfoVO comCodeInfoVO) {
		return this.comCodeInfoMapper.createPost(comCodeInfoVO);
	}
	
	//상세 뷰 
	public ComCodeInfoVO detail(ComCodeInfoVO comCodeInfoVO) {
		return this.comCodeInfoMapper.detail(comCodeInfoVO);
	}
	
	//수정 실행 
	public int updatePost(ComCodeInfoVO comCodeInfoVO) {
		return this.comCodeInfoMapper.updatePost(comCodeInfoVO);
	}
	
	//삭제 실행 
	public int deletePost(ComCodeInfoVO comCodeInfoVO) {
		return this.comCodeInfoMapper.deletePost(comCodeInfoVO);
	}
	
	//목록 뷰 
	public List<ComCodeInfoVO> list(Map<String, Object> map){
		return this.comCodeInfoMapper.list(map);
	}
}

 

 

ComCodeInfoMapper.java

package kr.or.ddit.mapper;

import java.util.List;
import java.util.Map;

import kr.or.ddit.vo.ComCodeInfoVO;

public interface ComCodeInfoMapper {
	
	//등록 뷰
	public List<ComCodeInfoVO> create();
	
	//입력 실행 
	public int createPost(ComCodeInfoVO comCodeInfoVO);
	
	//상세 뷰 
	public ComCodeInfoVO detail(ComCodeInfoVO comCodeInfoVO);
	
	//수정 실행 
	public int updatePost(ComCodeInfoVO comCodeInfoVO);
	
	//삭제 실행 
	public int deletePost(ComCodeInfoVO comCodeInfoVO);
	
	//목록 뷰 
	public List<ComCodeInfoVO> list(Map<String, Object> map);
}

 

 

comCodeInfo_SQL.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.or.ddit.mapper.ComCodeInfoMapper">

	<!-- 등록 뷰 -->
	<select id="create" resultType="comCodeInfoVO">
		SELECT COM_CODE, COM_CODE_NM, DESCRIPTIONS
		FROM COM_CODE_INFO
	</select>
	
	<!-- 입력 실행 -->
	<insert id="createPost" parameterType="comCodeInfoVO">
		INSERT INTO COM_CODE_INFO(COM_CODE, COM_CODE_NM
			<if test="descriptions!=null and descriptions!=''">
			, DESCRIPTIONS
			</if>
			)
		VALUES(#{comCode}, #{comCodeNm}
			<if test="descriptions!=null and descriptions!=''">
			, #{descriptions}
			</if>
			)
	</insert>
	
	<!-- 상세 뷰 -->
	<select id="detail" parameterType="comCodeInfoVO" 
		resultType="comCodeInfoVO">
		SELECT COM_CODE, COM_CODE_NM, DESCRIPTIONS
		FROM COM_CODE_INFO
		WHERE COM_CODE = #{comCode}
	</select>
	
	<!-- 수정 실행 -->
	<update id="updatePost" parameterType="comCodeInfoVO">
		UPDATE COM_CODE_INFO
		SET COM_CODE_NM = #{comCodeNm}
		<if test="descriptions!=null and descriptions!=''">
		    , DESCRIPTIONS = #{descriptions} 
		</if>
		WHERE COM_CODE = #{comCode} 
	</update>
	
	<!-- 삭제 실행 -->
	<delete id="deletePost" parameterType="comCodeInfoVO">
		DELETE FROM COM_CODE_INFO
		WHERE COM_CODE = #{comCode}
	</delete>
	
	<!-- 목록 뷰 -->
	<select id="list" parameterType="hashMap" resultType="comCodeInfoVO">
		SELECT COM_CODE, COM_CODE_NM, DESCRIPTIONS
		FROM COM_CODE_INFO
	</select>
</mapper>

 

 

create.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
<h3>공통코드</h3>
<div class="row">
	<div class="col-md-6">
		<form action="/comCodeInfo/createPost" method="post">
			<div class="card card-primary">
				<div class="card-header">
					<h3 class="card-title">공통코드</h3>
				</div>
				<div class="card-body">
					<div class="form-group">
						<label for="comCode">공통 코드</label>
						<input type="text" id="comCode" name="comCode" class="form-control"
							placeholder="공통 코드" required />
					</div>
					<div class="form-group">
						<label for="comCodeNum">공통 코드 명</label>
						<input type="text" id="comCodeNm" name="comCodeNm" class="form-control"
							placeholder="공통 코드 명" required />
					</div>
					<div class="form-group">
						<label for="descriptions">설명</label>
						<textarea id="descriptions" name="descriptions" 
							cols="30" rows="5" class="form-control"
							placeholder="설명" ></textarea>
					</div>
				</div>
				<div class="card-footer">
					<button type="submit" class="btn btn-primary">공통 코드 등록</button>
				</div>
			</div>
			<sec:csrfInput/>
		</form>
	</div>
	<div class="col-md-6">
		<div class="card card-info">
			<div class="card-header">
				<h3 class="card-title">공통 상세 코드</h3>
			</div>
			<div class="card-body">
				<div class="form-group">
					<label for="comDetCode">공통 상세 코드</label>
					<input type="text" id="comDetCode" name="comDetCode" class="form-control"
						placeholder="공통 상세 코드" required />
				</div>
				<div class="form-group">
					<label for="comDetCodeNm">공통 상세 코드 명</label>
					<input type="text" id="comDetCodeNm" name="comDetCodeNm" class="form-control"
						placeholder="공통 상세 코드 명" required />
				</div>
				<div class="form-group">
					<label for="descriptions2">설명</label>
					<textarea id="descriptions2" name="descriptions2" 
						cols="30" rows="5" class="form-control"
						placeholder="설명" ></textarea>
				</div>
			</div>
			<div class="card-footer">
				<button type="submit" class="btn btn-primary">공통 상세 코드 등록</button>
			</div>
		</div>
	</div>
</div>

 

결과 화면2

 

 

 

  • aside
더보기
<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags"%>
<!-- Main Sidebar Container -->
<aside class="main-sidebar sidebar-dark-primary elevation-4">
	<!-- Brand Logo -->
	<a href="index3.html" class="brand-link"> <img
		src="/resources/adminlte/dist/img/AdminLTELogo.png"
		alt="AdminLTE Logo" class="brand-image img-circle elevation-3"
		style="opacity: .8"> <span class="brand-text font-weight-light">AdminLTE
			3</span>
	</a>

	<!-- Sidebar -->
	<div class="sidebar">
		<!-- Sidebar user panel (optional) -->
		<!-- /// 로그인 안함 시작 /// -->
		<!-- isAnonymous() 는 로그인 안 했을 때 true -> 아래 코드 실행 -->
		<sec:authorize access="isAnonymous()"> <!-- 인가 : 권한 -->
			<div class="user-panel mt-3 pb-3 mb-3 d-flex">
				<div class="image">
					<img src="/resources/adminlte/dist/img/user2-160x160.jpg"
						class="img-circle elevation-2" alt="User Image">
				</div>
				<div class="info">
					<a href="#" class="d-block">Alexander Pierce</a>
				</div>
			</div>
		</sec:authorize>
		<!-- /// 로그인 안함 끝 /// -->
		
		<!-- /// 로그인 함 시작 /// -->
		<sec:authorize access="isAuthenticated()">
		
			<!-- principal : 사용자정보 객체
			var속성이 있으면 JSTL변수에 할당.
			var속성이 없으면 화면에 출력.-->
			<sec:authentication property="principal.member" var="member"/>
			<sec:authentication property="principal.member.memberAuthVOList" var="memberAuthVOList" />
			
			<c:forEach var="memberAuthVO" items="${memberAuthVOList}" varStatus="stat">
				<p>${memberAuthVO.auth}</p>
			</c:forEach>
			
			<div class="user-panel mt-3 pb-3 mb-3 d-flex">
				<div class="image">
					<img src="/resources/upload/mang6.jpg"
						class="img-circle elevation-2" alt="User Image">
				</div>
				<div class="info">
					<a href="#" class="d-block">${member.userName}님 환영합니다.</a>
					<form action="/logout" method="post"> <!-- 꼭 post여야함 -->
						<button type="submit" class="btn btn-block btn-secondary btn-xs">로그아웃</button>
						<sec:csrfInput/>
					</form>
				</div>
			</div>
		</sec:authorize>
		<!-- /// 로그인 함 끝 /// -->


		<!-- SidebarSearch Form -->
		<div class="form-inline">
			<div class="input-group" data-widget="sidebar-search">
				<input class="form-control form-control-sidebar" type="search"
					placeholder="Search" aria-label="Search">
				<div class="input-group-append">
					<button class="btn btn-sidebar">
						<i class="fas fa-search fa-fw"></i>
					</button>
				</div>
			</div>
		</div>

		<!-- Sidebar Menu -->
		<nav class="mt-2">
			<ul class="nav nav-pills nav-sidebar flex-column"
				data-widget="treeview" role="menu" data-accordion="false">
				<!-- Add icons to the links using the .nav-icon class
               with font-awesome or any other icon font library -->
				<li class="nav-item menu-open"><a href="#"
					class="nav-link active"> <i
						class="nav-icon fas fa-tachometer-alt"></i>
						<p>
							Dashboard <i class="right fas fa-angle-left"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="./index.html"
							class="nav-link active"> <i class="far fa-circle nav-icon"></i>
								<p>Dashboard v1</p>
						</a></li>
						<li class="nav-item"><a href="./index2.html" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>Dashboard v2</p>
						</a></li>
						<li class="nav-item"><a href="./index3.html" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>Dashboard v3</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="pages/widgets.html"
					class="nav-link"> <i class="nav-icon fas fa-th"></i>
						<p>
							Widgets <span class="right badge badge-danger">New</span>
						</p>
				</a></li>
				
				
				<!-- //////////// 공통 코드 관리 시작 //////////// -->
				<li class="nav-item">
					<a href="#" class="nav-link">
						<i class="nav-icon fas fa-copy"></i>
						<p>
							공통 코드 관리
						</p>
					</a>
					<ul class="nav nav-treeview">
						<li class="nav-item">
							<a href="/comCOdeInfo/create" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>공통 코드 목록</p>
							</a>
						</li>
						<li class="nav-item">
							<a href="/comCOdeInfo/list" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>공통 코드 목록</p>
							</a>
						</li>
					</ul>
				</li>
				<!-- //////////// 공통 코드 관리 끝 //////////// -->
				
				
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-copy"></i>
						<p>
							Layout Options <i class="fas fa-angle-left right"></i> <span
								class="badge badge-info right">6</span>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/layout/top-nav.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Top Navigation</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/layout/top-nav-sidebar.html" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Top Navigation + Sidebar</p>
						</a></li>
						<li class="nav-item"><a href="pages/layout/boxed.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Boxed</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/layout/fixed-sidebar.html" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Fixed Sidebar</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/layout/fixed-sidebar-custom.html" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>
									Fixed Sidebar <small>+ Custom Area</small>
								</p>
						</a></li>
						<li class="nav-item"><a href="pages/layout/fixed-topnav.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Fixed Navbar</p>
						</a></li>
						<li class="nav-item"><a href="pages/layout/fixed-footer.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Fixed Footer</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/layout/collapsed-sidebar.html" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>Collapsed Sidebar</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-chart-pie"></i>
						<p>
							Charts <i class="right fas fa-angle-left"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/charts/chartjs.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>ChartJS</p>
						</a></li>
						<li class="nav-item"><a href="pages/charts/flot.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Flot</p>
						</a></li>
						<li class="nav-item"><a href="pages/charts/inline.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Inline</p>
						</a></li>
						<li class="nav-item"><a href="pages/charts/uplot.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>uPlot</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-tree"></i>
						<p>
							UI Elements <i class="fas fa-angle-left right"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/UI/general.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>General</p>
						</a></li>
						<li class="nav-item"><a href="pages/UI/icons.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Icons</p>
						</a></li>
						<li class="nav-item"><a href="pages/UI/buttons.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Buttons</p>
						</a></li>
						<li class="nav-item"><a href="pages/UI/sliders.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Sliders</p>
						</a></li>
						<li class="nav-item"><a href="pages/UI/modals.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Modals & Alerts</p>
						</a></li>
						<li class="nav-item"><a href="pages/UI/navbar.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Navbar & Tabs</p>
						</a></li>
						<li class="nav-item"><a href="pages/UI/timeline.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Timeline</p>
						</a></li>
						<li class="nav-item"><a href="pages/UI/ribbons.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Ribbons</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-edit"></i>
						<p>
							Forms <i class="fas fa-angle-left right"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/forms/general.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>General Elements</p>
						</a></li>
						<li class="nav-item"><a href="pages/forms/advanced.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Advanced Elements</p>
						</a></li>
						<li class="nav-item"><a href="pages/forms/editors.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Editors</p>
						</a></li>
						<li class="nav-item"><a href="pages/forms/validation.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Validation</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-table"></i>
						<p>
							Tables <i class="fas fa-angle-left right"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/tables/simple.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Simple Tables</p>
						</a></li>
						<li class="nav-item"><a href="pages/tables/data.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>DataTables</p>
						</a></li>
						<li class="nav-item"><a href="pages/tables/jsgrid.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>jsGrid</p>
						</a></li>
					</ul></li>
				<li class="nav-header">EXAMPLES</li>
				<li class="nav-item"><a href="pages/calendar.html"
					class="nav-link"> <i class="nav-icon far fa-calendar-alt"></i>
						<p>
							Calendar <span class="badge badge-info right">2</span>
						</p>
				</a></li>
				<li class="nav-item"><a href="pages/gallery.html"
					class="nav-link"> <i class="nav-icon far fa-image"></i>
						<p>Gallery</p>
				</a></li>
				<li class="nav-item"><a href="pages/kanban.html"
					class="nav-link"> <i class="nav-icon fas fa-columns"></i>
						<p>Kanban Board</p>
				</a></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon far fa-envelope"></i>
						<p>
							Mailbox <i class="fas fa-angle-left right"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/mailbox/mailbox.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Inbox</p>
						</a></li>
						<li class="nav-item"><a href="pages/mailbox/compose.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Compose</p>
						</a></li>
						<li class="nav-item"><a href="pages/mailbox/read-mail.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Read</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-book"></i>
						<p>
							Pages <i class="fas fa-angle-left right"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/examples/invoice.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Invoice</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/profile.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Profile</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/e-commerce.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>E-commerce</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/projects.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Projects</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/examples/project-add.html" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Project Add</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/examples/project-edit.html" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Project Edit</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/examples/project-detail.html" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Project Detail</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/contacts.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Contacts</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/faq.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>FAQ</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/contact-us.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Contact us</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon far fa-plus-square"></i>
						<p>
							Extras <i class="fas fa-angle-left right"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="#" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>
									Login & Register v1 <i class="fas fa-angle-left right"></i>
								</p>
						</a>
							<ul class="nav nav-treeview">
								<li class="nav-item"><a href="pages/examples/login.html"
									class="nav-link"> <i class="far fa-circle nav-icon"></i>
										<p>Login v1</p>
								</a></li>
								<li class="nav-item"><a href="pages/examples/register.html"
									class="nav-link"> <i class="far fa-circle nav-icon"></i>
										<p>Register v1</p>
								</a></li>
								<li class="nav-item"><a
									href="pages/examples/forgot-password.html" class="nav-link">
										<i class="far fa-circle nav-icon"></i>
										<p>Forgot Password v1</p>
								</a></li>
								<li class="nav-item"><a
									href="pages/examples/recover-password.html" class="nav-link">
										<i class="far fa-circle nav-icon"></i>
										<p>Recover Password v1</p>
								</a></li>
							</ul></li>
						<li class="nav-item"><a href="#" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>
									Login & Register v2 <i class="fas fa-angle-left right"></i>
								</p>
						</a>
							<ul class="nav nav-treeview">
								<li class="nav-item"><a href="pages/examples/login-v2.html"
									class="nav-link"> <i class="far fa-circle nav-icon"></i>
										<p>Login v2</p>
								</a></li>
								<li class="nav-item"><a
									href="pages/examples/register-v2.html" class="nav-link"> <i
										class="far fa-circle nav-icon"></i>
										<p>Register v2</p>
								</a></li>
								<li class="nav-item"><a
									href="pages/examples/forgot-password-v2.html" class="nav-link">
										<i class="far fa-circle nav-icon"></i>
										<p>Forgot Password v2</p>
								</a></li>
								<li class="nav-item"><a
									href="pages/examples/recover-password-v2.html" class="nav-link">
										<i class="far fa-circle nav-icon"></i>
										<p>Recover Password v2</p>
								</a></li>
							</ul></li>
						<li class="nav-item"><a href="pages/examples/lockscreen.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Lockscreen</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/examples/legacy-user-menu.html" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>Legacy User Menu</p>
						</a></li>
						<li class="nav-item"><a
							href="pages/examples/language-menu.html" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Language Menu</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/404.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Error 404</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/500.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Error 500</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/pace.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Pace</p>
						</a></li>
						<li class="nav-item"><a href="pages/examples/blank.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Blank Page</p>
						</a></li>
						<li class="nav-item"><a href="starter.html" class="nav-link">
								<i class="far fa-circle nav-icon"></i>
								<p>Starter Page</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-search"></i>
						<p>
							Search <i class="fas fa-angle-left right"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="pages/search/simple.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Simple Search</p>
						</a></li>
						<li class="nav-item"><a href="pages/search/enhanced.html"
							class="nav-link"> <i class="far fa-circle nav-icon"></i>
								<p>Enhanced</p>
						</a></li>
					</ul></li>
				<li class="nav-header">MISCELLANEOUS</li>
				<li class="nav-item"><a href="iframe.html" class="nav-link">
						<i class="nav-icon fas fa-ellipsis-h"></i>
						<p>Tabbed IFrame Plugin</p>
				</a></li>
				<li class="nav-item"><a href="https://adminlte.io/docs/3.1/"
					class="nav-link"> <i class="nav-icon fas fa-file"></i>
						<p>Documentation</p>
				</a></li>
				<li class="nav-header">MULTI LEVEL EXAMPLE</li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="fas fa-circle nav-icon"></i>
						<p>Level 1</p>
				</a></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon fas fa-circle"></i>
						<p>
							Level 1 <i class="right fas fa-angle-left"></i>
						</p>
				</a>
					<ul class="nav nav-treeview">
						<li class="nav-item"><a href="#" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Level 2</p>
						</a></li>
						<li class="nav-item"><a href="#" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>
									Level 2 <i class="right fas fa-angle-left"></i>
								</p>
						</a>
							<ul class="nav nav-treeview">
								<li class="nav-item"><a href="#" class="nav-link"> <i
										class="far fa-dot-circle nav-icon"></i>
										<p>Level 3</p>
								</a></li>
								<li class="nav-item"><a href="#" class="nav-link"> <i
										class="far fa-dot-circle nav-icon"></i>
										<p>Level 3</p>
								</a></li>
								<li class="nav-item"><a href="#" class="nav-link"> <i
										class="far fa-dot-circle nav-icon"></i>
										<p>Level 3</p>
								</a></li>
							</ul></li>
						<li class="nav-item"><a href="#" class="nav-link"> <i
								class="far fa-circle nav-icon"></i>
								<p>Level 2</p>
						</a></li>
					</ul></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="fas fa-circle nav-icon"></i>
						<p>Level 1</p>
				</a></li>
				<li class="nav-header">LABELS</li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon far fa-circle text-danger"></i>
						<p class="text">Important</p>
				</a></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon far fa-circle text-warning"></i>
						<p>Warning</p>
				</a></li>
				<li class="nav-item"><a href="#" class="nav-link"> <i
						class="nav-icon far fa-circle text-info"></i>
						<p>Informational</p>
				</a></li>
			</ul>
		</nav>
		<!-- /.sidebar-menu -->
	</div>
	<!-- /.sidebar -->
</aside>

결과 화면2

 

 

 

  • list

ComCodeInfoController.java

list 부분 수정

//목록 뷰
@GetMapping("/list")
public String list(Map<String, Object> map, Model model) {
    List<ComCodeInfoVO> comCodeInfoVOList
        = this.comCodeInfoService.list(map);
    log.info("list->comCodeInfoVOList : " + comCodeInfoVOList);

    model.addAttribute("comCodeInfoVOList", comCodeInfoVOList);

    //forwarding
    return "comCodeInfo/list";
}

 

 

list.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<h3>공통코드</h3>
<div class="row">
	<div class="col-md-6">
		<form action="/comCodeInfo/createPost" method="post">
			<div class="card card-primary">
				<div class="card-header">
					<h3 class="card-title">공통코드</h3>
				</div>
				<div class="card-body">
					<!-- ////// 공통 코드 목록 시작 ////// -->
					<table class="table table-bordered">
						<thead>
							<tr>
								<th>공통 코드</th>
								<th>공통 코드 명</th>
							</tr>
						</thead>
						<tbody>
							<c:forEach var="comCodeInfoVO" items="${comCodeInfoVOList}"
								varStatus="stat">
								<tr>
									<td>${comCodeInfoVO.comCode}</td>
									<td>${comCodeInfoVO.comCodeNm}</td>
								</tr>
							</c:forEach>
						</tbody>
					</table>
					<!-- ////// 공통 코드 목록 끝 ////// -->
				</div>
				<div class="card-footer">
					<button type="submit" class="btn btn-primary">공통 코드 등록</button>
				</div>
			</div>
			<sec:csrfInput/>
		</form>
	</div>
	<div class="col-md-6">
		<div class="card card-info">
			<div class="card-header">
				<h3 class="card-title">공통 상세 코드</h3>
			</div>
			<div class="card-body">
				<!-- ////// 공통 상세 코드 목록 시작 ////// -->
				<table class="table table-bordered">
						<thead>
							<tr>
								<th>공통 상세 코드</th>
								<th>공통 상세 코드 명</th>
								<th>공통 코드</th>
							</tr>
						</thead>
						<tbody>
							<tr>
								<td>HBY01001</td>
								<td>영화감상</td>
								<td>HBY01</td>
							</tr>
						</tbody>
					</table>
				<!-- ////// 공통 상세 코드 목록 끝 ////// -->
			</div>
			<div class="card-footer">
				<button type="submit" class="btn btn-primary">공통 상세 코드 등록</button>
			</div>
		</div>
	</div>
</div>

 

결과 화면3

 

 

 

  • 공통 상세 코드

ComDetCodeInfoController.java

package kr.or.ddit.controller;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import kr.or.ddit.service.ComDetCodeInfoService;
import kr.or.ddit.vo.ComDetCodeInfoVO;
import lombok.Getter;
import lombok.extern.slf4j.Slf4j;

@Slf4j
@RequestMapping("/comDetCodeInfo")
@Controller
public class ComDetCodeInfoController {

	@Autowired
	ComDetCodeInfoService comDetCodeInfoService;
	
	//등록 뷰
	@GetMapping("/create")
	public String create() {
		//forwarding
		return "comCodeInfo/create";
	}
	
	//입력 실행
	@PostMapping("/createPost")
	public String createPost(ComDetCodeInfoVO comDetCodeInfoVO) {
		log.info("createPost->ComDetCodeInfoVO : " + comDetCodeInfoVO);
		
		int result = this.comDetCodeInfoService.createPost(comDetCodeInfoVO);
		log.info("createPost->result : " + result);
		
		//입력 후 상세로 이동
		return "redirect:/comCodeInfo/detail?comCode=" + comDetCodeInfoVO.getComCode();
	}
	
	//상세 뷰
	@GetMapping("/detail")
	public String detail(ComDetCodeInfoVO comDetCodeInfoVO) {
		//forwarding
		return "comCodeInfo/detail";
	}
	
	//수정 실행
	@PostMapping("/updatePost")
	public String updatePost(ComDetCodeInfoVO comDetCodeInfoVO) {
		//수정 후 상세로 이동
		return "redirect:/comCodeInfo/detail?comCode="+comDetCodeInfoVO.getComCode();
	}
	
	//삭제 실행
	@PostMapping("/deletePost")
	public String deletePost(ComDetCodeInfoVO comDetCodeInfoVO) {
		//삭제 후 목록으로 이동
		return "redirect:/comCodeInfo/list";
	}
	
	//목록 뷰
	@GetMapping("/list")
	public String list(Map<String, Object> map, Model model) {
		List<ComDetCodeInfoVO> comDetCodeInfoVOList
			= this.comDetCodeInfoService.list(map);
		log.info("list->ComDetCodeInfoVOList : " + comDetCodeInfoVOList);
		
		model.addAttribute("ComDetCodeInfoVOList", comDetCodeInfoVOList);
		
		//forwarding
		return "comCodeInfo/list";
	}
	
	//요청 파라미터 : {"comCode":"HBY01"}
	//기본키+1
	@ResponseBody
	@PostMapping("/getNextComDetCode")
	public String getNextComDetCode(@RequestBody ComDetCodeInfoVO comDetCodeInfoVO) {
		log.info("getNextComDetCode->comDetCodeInfoVO : " + comDetCodeInfoVO);
		
		String comDetCode = 
			this.comDetCodeInfoService.getNextComDetCode(comDetCodeInfoVO);
		log.info("comDetCode : " + comDetCode);
		
		return comDetCode;
	}
	
}

 


ComDetCodeInfoService.java

package kr.or.ddit.service;

import java.util.List;
import java.util.Map;

import kr.or.ddit.vo.ComDetCodeInfoVO;

public interface ComDetCodeInfoService{
	
	//등록 뷰
	public List<ComDetCodeInfoVO> create();
	
	//입력 실행 
	public int createPost(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//상세 뷰 
	public ComDetCodeInfoVO detail(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//수정 실행 
	public int updatePost(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//삭제 실행 
	public int deletePost(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//목록 뷰 
	public List<ComDetCodeInfoVO> list(Map<String, Object> map);

	//기본키+1
	public String getNextComDetCode(ComDetCodeInfoVO comDetCodeInfoVO);
}



ComDetCodeInfoServiceImpl.java

package kr.or.ddit.service.impl;

import java.util.List;
import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import kr.or.ddit.mapper.ComCodeInfoMapper;
import kr.or.ddit.mapper.ComDetCodeInfoMapper;
import kr.or.ddit.service.ComCodeInfoService;
import kr.or.ddit.service.ComDetCodeInfoService;
import kr.or.ddit.vo.ComDetCodeInfoVO;

@Service
public class ComDetCodeInfoServiceImpl implements ComDetCodeInfoService{
	
	@Autowired
	ComDetCodeInfoMapper comDetCodeInfoMapper;
	
	//등록 뷰
	public List<ComDetCodeInfoVO> create(){
		return this.comDetCodeInfoMapper.create();
	}
	
	//입력 실행 
	public int createPost(ComDetCodeInfoVO comDetCodeInfoVO) {
		return this.comDetCodeInfoMapper.createPost(comDetCodeInfoVO);
	}
	
	//상세 뷰 
	public ComDetCodeInfoVO detail(ComDetCodeInfoVO comDetCodeInfoVO) {
		return this.comDetCodeInfoMapper.detail(comDetCodeInfoVO);
	}
	
	//수정 실행 
	public int updatePost(ComDetCodeInfoVO comDetCodeInfoVO) {
		return this.comDetCodeInfoMapper.updatePost(comDetCodeInfoVO);
	}
	
	//삭제 실행 
	public int deletePost(ComDetCodeInfoVO comDetCodeInfoVO) {
		return this.comDetCodeInfoMapper.deletePost(comDetCodeInfoVO);
	}
	
	//목록 뷰 
	public List<ComDetCodeInfoVO> list(Map<String, Object> map){
		return this.comDetCodeInfoMapper.list(map);
	}

	//기본키+1
	@Override
	public String getNextComDetCode(ComDetCodeInfoVO comDetCodeInfoVO) {
		return this.comDetCodeInfoMapper.getNextComDetCode(comDetCodeInfoVO);
	}
}



ComDetCodeInfoMapper.java

package kr.or.ddit.mapper;

import java.util.List;
import java.util.Map;

import kr.or.ddit.vo.ComDetCodeInfoVO;

public interface ComDetCodeInfoMapper {
	
	//등록 뷰
	public List<ComDetCodeInfoVO> create();
	
	//입력 실행 
	public int createPost(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//상세 뷰 
	public ComDetCodeInfoVO detail(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//수정 실행 
	public int updatePost(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//삭제 실행 
	public int deletePost(ComDetCodeInfoVO comDetCodeInfoVO);
	
	//목록 뷰 
	public List<ComDetCodeInfoVO> list(Map<String, Object> map);

	//기본키+1
	public String getNextComDetCode(ComDetCodeInfoVO comDetCodeInfoVO);
}



comDetCodeInfo_SQL.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="kr.or.ddit.mapper.ComDetCodeInfoMapper">

	<!-- 등록 뷰 -->
	<select id="create" resultType="comDetCodeInfoVO">
		SELECT COM_DET_CODE, COM_CODE
			, COM_DET_CODE_nm, DESCRIPTIONS
		FROM COM_DET_CODE_INFO
	</select>
	
	<!-- 입력 실행 -->
	<insert id="createPost" parameterType="comDetCodeInfoVO">
		INSERT INTO COM_DET_CODE_INFO(COM_DET_CODE, COM_CODE
			, COM_DET_CODE_NM
			<if test="descriptions!=null and descriptions!=''">
			, DESCRIPTIONS
			</if>
			)
		VALUES(#{comDetCode}, #{comCode}, #{comDetCodeNm}
			<if test="descriptions!=null and descriptions!=''">
			, #{descriptions}
			</if>
			)
	</insert>
	
	<!-- 상세 뷰 -->
	<select id="detail" parameterType="comDetCodeInfoVO" 
		resultType="comDetCodeInfoVO">
		SELECT COM_DET_CODE, COM_CODE
			, COM_DET_CODE_NM, DESCRIPTIONS
		FROM COM_DET_CODE_INFO
		WHERE COM_DET_CODE = #{comDetCode}
	</select>
	
	<!-- 수정 실행 -->
	<update id="updatePost" parameterType="comDetCodeInfoVO">
		UPDATE COM_DET_CODE_INFO
		SET COM_DET_CODE_NM = #{comDetCodeNm}
		<if test="descriptions!=null and descriptions!=''">
		    , DESCRIPTIONS = #{descriptions} 
		</if>
		WHERE COM_DET_CODE = #{comDetCode} 
	</update>
	
	<!-- 삭제 실행 -->
	<delete id="deletePost" parameterType="comDetCodeInfoVO">
		DELETE FROM COM_DET_CODE_INFO
		WHERE COM_DET_CODE = #{comDetCode}
	</delete>
	
	<!-- 목록 뷰 -->
	<select id="list" parameterType="hashMap" resultType="comDetCodeInfoVO">
		SELECT COM_DET_CODE, COM_CODE
			, COM_DET_CODE_nm, DESCRIPTIONS
		FROM COM_DET_CODE_INFO
	</select>
	
	<!-- 기본키+1 -->
	<!-- comDetCodeInfoVO{..comCode=HBY01..} -->
	<select id="getNextComDetCode" parameterType="comDetCodeInfoVO" resultType="String">
		SELECT NVL(SUBSTR(MAX(COM_DET_CODE),1,5)
			|| TRIM(TO_CHAR(SUBSTR(MAX(COM_DET_CODE),6) + 1,'000')),#{comCode}||'001')
		FROM    COM_DET_CODE_INFO
		WHERE  COM_CODE = #{comCode}
	</select>
</mapper>

 

 

ComCodeInfoController.java
입력 뷰(등록 뷰) 수정

//입력 뷰
@GetMapping("/create")
public String create(Model model) {
    List<ComCodeInfoVO> comCodeInfoVOList
        = this.comCodeInfoService.create();

    model.addAttribute("comCodeInfoVOList", comCodeInfoVOList);

    //forwarding
    return "comCodeInfo/create";
}

 

 

create.jsp
공통 상세 코드에서 select 추가

<div class="card-body">
    <div class="form-group">
        <label for="selcomCode">공통 코드</label>
        <select id="selcomCode" name="comCode" class="form-control custom-select">
            <option selected disabled>공통 코드 선택</option>
            <c:forEach var="comCodeInfoVO" items="${comCodeInfoVOList}" varStatus="">
                <option value="${comCodeInfoVO.comCode}">${comCodeInfoVO.comCodeNm}</option>
            </c:forEach>
        </select>
    </div>

 

자바 스크립트 추가(ajax)

<%@ taglib uri="http://www.springframework.org/security/tags" prefix="sec" %>
<script type="text/javascript" src="/resources/js/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
	$("#selComCode").on("change",function(){
		let comCode = $(this).val();
		console.log("comCode : " + comCode);
		
		let data = {
			"comCode":comCode
		};
		
		console.log("data : ", data);
		
		$.ajax({
			url:"/comDetCodeInfo/getNextComDetCode",
			contentType:"application/json;charset=utf-8",
			data:JSON.stringify(data),
			type:"post",
			dataType:"text", //응답 타입
			beforeSend:function(xhr){
				xhr.setRequestHeader("${_csrf.headerName}","${_csrf.token}");
			},
			success:function(result){
				console.log("result : ", result);
				
				$("#comDetCode").val(result);
			}
		});
	});
});
</script>

 

결과 화면4

 

결과 화면5

 

 

반응형