nbs0105 / BOOT_CMS star
beom 4 days ago
사이트/메뉴 검증 어노테이션 적용
@930a14ffb135b29d9e2500836b419b708b2354fd
CHANGELOG_BOOT_JPA.md
--- CHANGELOG_BOOT_JPA.md
+++ CHANGELOG_BOOT_JPA.md
@@ -376,3 +376,17 @@
   - 카테고리마스터 필수값/길이 제약 어노테이션 추가
 - `/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/cop/bbs/service/CtgryVO.java`
   - 카테고리 필수값/길이 제약 어노테이션 추가
+
+## 추가 변경(18차)
+
+### 사이트/메뉴 검증 어노테이션 적용
+- `/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/mpm/service/MpmVO.java`
+  - 메뉴 필드에 Bean Validation 어노테이션 추가
+- `/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/sit/service/SiteManageVO.java`
+  - 사이트 필드에 Bean Validation 어노테이션 추가
+- `/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/module/sym/sit/service/SiteMainContentsManageVO.java`
+  - 사이트 메인컨텐츠 필드에 Bean Validation 어노테이션 추가
+- `/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/mpm/web/MpmController.java`
+  - 메뉴 등록 시 `@Valid` 적용 및 검증 중복 제거
+- `/Users/beom/Documents/intellij/cms/FoxeduBaseCMS/base/src/main/java/egovframework/com/mng/sym/sit/web/SiteManageController.java`
+  - 사이트 등록/수정 시 `@Valid` 적용 및 검증 중복 제거
base/src/main/java/egovframework/com/mng/sym/mpm/web/MpmController.java
--- base/src/main/java/egovframework/com/mng/sym/mpm/web/MpmController.java
+++ base/src/main/java/egovframework/com/mng/sym/mpm/web/MpmController.java
@@ -22,6 +22,7 @@
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springmodules.validation.commons.DefaultBeanValidator;
+import jakarta.validation.Valid;
 
 import egovframework.com.cmm.service.CmmUseService;
 import egovframework.com.cmm.service.FileMngUtil;
@@ -140,13 +141,11 @@
     
   //메뉴를 등록한다.
   @RequestMapping("/manage/sym/mpm/insertMpm.do")
-  public String insertMpm(final MultipartHttpServletRequest multiRequest, SiteManageVO siteVO, @ModelAttribute("searchVO") MpmVO mnuVO, @ModelAttribute("mnu") MpmVO mnu, BindingResult bindingResult, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception {
+  public String insertMpm(final MultipartHttpServletRequest multiRequest, SiteManageVO siteVO, @ModelAttribute("searchVO") MpmVO mnuVO, @ModelAttribute("mnu") @Valid MpmVO mnu, BindingResult bindingResult, HttpServletRequest request, HttpServletResponse response, ModelMap model) throws Exception {
     
 	if(request.getSession().getAttribute("sessionVO") == null) {
 		return "forward:/manage/sym/mpm/selectMpmList.do";
 	}
-    
-    beanValidator.validate(mnu, bindingResult);
     
     if(bindingResult.hasErrors()) {
     	
base/src/main/java/egovframework/com/mng/sym/sit/web/SiteManageController.java
--- base/src/main/java/egovframework/com/mng/sym/sit/web/SiteManageController.java
+++ base/src/main/java/egovframework/com/mng/sym/sit/web/SiteManageController.java
@@ -18,6 +18,7 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
+import jakarta.validation.Valid;
 
 import egovframework.rte.fdl.property.EgovPropertyService;
 import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
@@ -135,14 +136,12 @@
   
   //사이트정보를 등록한다.
   @RequestMapping("/manage/sym/sit/insertSiteInfo.do")
-  public String insertSiteInfo(final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") SiteManageVO searchVO, SiteManageVO siteManageVO, SiteMainContentsManageVO mainContentsVO, BindingResult bindingResult, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+  public String insertSiteInfo(final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") SiteManageVO searchVO, @Valid SiteManageVO siteManageVO, SiteMainContentsManageVO mainContentsVO, BindingResult bindingResult, Model model, HttpServletRequest request, HttpServletResponse response) throws Exception {
     
 	if(request.getSession().getAttribute("sessionVO") == null) {
 		return "forward:/manage/sym/sit/selectSiteInfoList.do";
 	}
 	  
-    beanValidator.validate(siteManageVO, bindingResult);
-    
     if(bindingResult.hasErrors()) {
       
     	CmmnDetailCodeVO ccvo = new CmmnDetailCodeVO();
@@ -244,15 +243,12 @@
   
   //사이트정보를 수정한다.
   @RequestMapping("/manage/sym/sit/updateSiteInfo.do")
-  public String updateSiteInfo(final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") SiteManageVO searchVO, SiteManageVO siteManageVO, SiteMainContentsManageVO mainContentsVO, BindingResult bindingResult, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
+  public String updateSiteInfo(final MultipartHttpServletRequest multiRequest, @ModelAttribute("searchVO") SiteManageVO searchVO, @Valid SiteManageVO siteManageVO, SiteMainContentsManageVO mainContentsVO, BindingResult bindingResult, ModelMap model, HttpServletRequest request, HttpServletResponse response) throws Exception {
     
 	if(request.getSession().getAttribute("sessionVO") == null) {
 		return "forward:/manage/sym/sit/selectSiteInfoList.do";
 	}
 	  
-    // Validation
-    beanValidator.validate(siteManageVO, bindingResult);
-    
     if(bindingResult.hasErrors()) {
       
     	  CmmnDetailCodeVO ccvo = new CmmnDetailCodeVO();
base/src/main/java/egovframework/module/sym/mpm/service/MpmVO.java
--- base/src/main/java/egovframework/module/sym/mpm/service/MpmVO.java
+++ base/src/main/java/egovframework/module/sym/mpm/service/MpmVO.java
@@ -5,6 +5,8 @@
 import org.apache.commons.lang.ArrayUtils;
 
 import egovframework.com.cmm.ComDefaultVO;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
 import egovframework.com.sec.ram.security.userdetails.util.EgovUserDetailsHelper;
 import egovframework.module.uat.uia.service.LoginVO;
 import egovframework.module.utl.fcc.service.EgovStringUtil;
@@ -13,24 +15,37 @@
 public class MpmVO extends ComDefaultVO implements Serializable {
 
 	//시스템구분코드
+    @NotBlank(message = "시스템구분코드는 필수입니다.")
+    @Size(max = 15, message = "시스템구분코드는 15자 이하여야 합니다.")
     private String sysTyCode = "SYS01";
     
     //메뉴ID
+    @NotBlank(message = "메뉴ID는 필수입니다.")
+    @Size(max = 20, message = "메뉴ID는 20자 이하여야 합니다.")
     private String menuId;
     
     //상위메뉴ID
+    @Size(max = 20, message = "상위메뉴ID는 20자 이하여야 합니다.")
     private String upperMenuId;
 
     //메뉴명
+    @NotBlank(message = "메뉴명은 필수입니다.")
+    @Size(max = 50, message = "메뉴명은 50자 이하여야 합니다.")
     private String menuNm = "";
 
     //구성유형
+    @NotBlank(message = "구성유형은 필수입니다.")
+    @Size(max = 15, message = "구성유형은 15자 이하여야 합니다.")
     private String compositionTyCode = "CNTNTS";
 
     //HTML 사용여부
+    @NotBlank(message = "HTML 사용여부는 필수입니다.")
+    @Size(max = 1, message = "HTML 사용여부는 1자여야 합니다.")
     private String htmlUseAt = "Y";
     
     //HTML소스 구분코드
+    @NotBlank(message = "HTML소스 구분코드는 필수입니다.")
+    @Size(max = 15, message = "HTML소스 구분코드는 15자 이하여야 합니다.")
     private String htmlsourcTyCode = "HTML";
     
     //스크립트 내용
@@ -43,6 +58,7 @@
     private String htmlCn = "";
     
     //모바일 HTML소스 구분코드
+    @Size(max = 15, message = "모바일 HTML소스 구분코드는 15자 이하여야 합니다.")
     private String mobileHtmlsourcTyCode = "HTML";
     
     //모바일 스크립트 내용
@@ -55,24 +71,35 @@
     private String mobileHtmlCn = "";
 
     //컨텐츠유형코드
+    @NotBlank(message = "컨텐츠유형코드는 필수입니다.")
+    @Size(max = 20, message = "컨텐츠유형코드는 20자 이하여야 합니다.")
     private String cntntsTyCode = "CTS01";
 
     //프로그램ID
+    @Size(max = 30, message = "프로그램ID는 30자 이하여야 합니다.")
     private String progrmId = "";
     
     //프로그램인자
+    @Size(max = 30, message = "프로그램인자는 30자 이하여야 합니다.")
     private String progrmFactr = "";
     
     //URL
+    @Size(max = 255, message = "URL은 255자 이하여야 합니다.")
     private String url = "";
 
     //노출여부
+    @NotBlank(message = "노출여부는 필수입니다.")
+    @Size(max = 1, message = "노출여부는 1자여야 합니다.")
     private String expsrUseAt = "Y";
 
 	//새창 여부
+    @NotBlank(message = "새창여부는 필수입니다.")
+    @Size(max = 1, message = "새창여부는 1자여야 합니다.")
     private String nwdAt = "N";
     
     //모바일 사용 여부
+    @NotBlank(message = "모바일사용여부는 필수입니다.")
+    @Size(max = 1, message = "모바일사용여부는 1자여야 합니다.")
     private String mobileUseAt = "N";
     
     //메뉴경로 - 메뉴명
@@ -88,57 +115,77 @@
     private String menuLastNodeAt = "";    
     
     //이미지파일명
+    @Size(max = 255, message = "이미지파일명은 255자 이하여야 합니다.")
     private String imageFileNm = "";
         
     //사이트 URL
     private String siteUrl = "";
     
     //정렬순서코드
+    @Size(max = 1, message = "정렬순서코드는 1자여야 합니다.")
     private String sortTyCode = "";
     
     //학생메뉴사용여부
+    @NotBlank(message = "학생메뉴사용여부는 필수입니다.")
+    @Size(max = 1, message = "학생메뉴사용여부는 1자여야 합니다.")
     private String stdntUseAt = "N";
     
     //학부모메뉴사용여부
+    @NotBlank(message = "학부모메뉴사용여부는 필수입니다.")
+    @Size(max = 1, message = "학부모메뉴사용여부는 1자여야 합니다.")
     private String stdnprntUseAt = "N";
     
     //선생님메뉴사용여부
+    @NotBlank(message = "선생님메뉴사용여부는 필수입니다.")
+    @Size(max = 1, message = "선생님메뉴사용여부는 1자여야 합니다.")
     private String profsrUseAt = "N";
     
     //일반인메뉴사용여부
+    @NotBlank(message = "일반인메뉴사용여부는 필수입니다.")
+    @Size(max = 1, message = "일반인메뉴사용여부는 1자여야 합니다.")
     private String generalUseAt = "N";
     
     //메뉴이력ID
+    @Size(max = 20, message = "메뉴이력ID는 20자 이하여야 합니다.")
     private String menuHistId;
     
     //모바일첨부파일ID
+    @Size(max = 20, message = "모바일첨부파일ID는 20자 이하여야 합니다.")
     private java.lang.String mobileAtchFileId = "";
     
     //게시판
+    @Size(max = 20, message = "게시판ID는 20자 이하여야 합니다.")
     private java.lang.String selectBbs = "";
     
 	//레이아웃구분
+    @Size(max = 100, message = "레이아웃구분은 100자 이하여야 합니다.")
     private String layoutParam = "";
 
     //rowNo
     private int rowNo = 0;
     
     //미리보기 여부
+    @Size(max = 1, message = "미리보기여부는 1자여야 합니다.")
     private String previewYn = "N";
     
     //임시메뉴아이디
+    @Size(max = 20, message = "임시메뉴ID는 20자 이하여야 합니다.")
     private String takeMenuId = "";
     
     //메인여부
+    @Size(max = 1, message = "메인여부는 1자여야 합니다.")
     private String isMain = "N";
 
     //임시첨부파일 그룹아이디
+    @Size(max = 20, message = "첨부파일 그룹ID는 20자 이하여야 합니다.")
     private String fileGroupId = "";
     
     //임시첨부파일 그룹아이디
+    @Size(max = 20, message = "모바일첨부파일 그룹ID는 20자 이하여야 합니다.")
     private String mobileFileGroupId = "";
     
     //접근권한목록
+    @Size(max = 200, message = "접근권한목록은 200자 이하여야 합니다.")
     private String accesAuthorList = "00,01,02,06,08,10,99";
     
     //모바일접근여부
base/src/main/java/egovframework/module/sym/sit/service/SiteMainContentsManageVO.java
--- base/src/main/java/egovframework/module/sym/sit/service/SiteMainContentsManageVO.java
+++ base/src/main/java/egovframework/module/sym/sit/service/SiteMainContentsManageVO.java
@@ -3,32 +3,44 @@
 import java.io.Serializable;
 import java.util.List;
 
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
+
 @SuppressWarnings("serial")
 public class SiteMainContentsManageVO implements Serializable {
   
-	/**
+    /**
 	 * 사이트 ID
 	 */
+    @NotBlank(message = "사이트ID는 필수입니다.")
+    @Size(max = 20, message = "사이트ID는 20자 이하여야 합니다.")
     private String siteId = "";
     
     /**
 	 * 메뉴 ID
 	 */
+    @NotBlank(message = "메뉴ID는 필수입니다.")
+    @Size(max = 20, message = "메뉴ID는 20자 이하여야 합니다.")
     private String menuId = "";
     
     /**
 	 * 컨텐츠유형코드
 	 */
+    @NotBlank(message = "컨텐츠유형코드는 필수입니다.")
+    @Size(max = 20, message = "컨텐츠유형코드는 20자 이하여야 합니다.")
     private String cntntsTyCode = "";
     
     /**
 	 * 프로그램ID
 	 */
+    @NotBlank(message = "프로그램ID는 필수입니다.")
+    @Size(max = 30, message = "프로그램ID는 30자 이하여야 합니다.")
     private String progrmId = "";
     
     /**
 	 * 프로그램명
 	 */
+    @Size(max = 50, message = "프로그램명은 50자 이하여야 합니다.")
     private String progrmNm = "";
     
     /**
base/src/main/java/egovframework/module/sym/sit/service/SiteManageVO.java
--- base/src/main/java/egovframework/module/sym/sit/service/SiteManageVO.java
+++ base/src/main/java/egovframework/module/sym/sit/service/SiteManageVO.java
@@ -8,6 +8,8 @@
 import org.apache.commons.collections.ListUtils;
 
 import egovframework.com.cmm.ComDefaultVO;
+import jakarta.validation.constraints.NotBlank;
+import jakarta.validation.constraints.Size;
 import egovframework.module.sym.mpm.service.MpmVO;
 import egovframework.module.uss.ion.bnr.service.BannerVO;
 import egovframework.module.uss.ion.pwm.service.PopupManageVO;
@@ -17,36 +19,49 @@
 public class SiteManageVO extends ComDefaultVO implements Serializable {
 	    
     //사이트 ID
+    @NotBlank(message = "사이트ID는 필수입니다.")
+    @Size(max = 20, message = "사이트ID는 20자 이하여야 합니다.")
     private String siteId;
     
     //시스템타입코드
+    @Size(max = 15, message = "시스템타입코드는 15자 이하여야 합니다.")
     private String sysTyCode;
     
     //사이트 URL
+    @NotBlank(message = "사이트URL은 필수입니다.")
+    @Size(max = 255, message = "사이트URL은 255자 이하여야 합니다.")
     private String siteUrl;
     
     //링크사이트명
+    @Size(max = 50, message = "사이트명은 50자 이하여야 합니다.")
     private String siteNm;
     
     //상단로고파일명
+    @Size(max = 255, message = "상단로고파일명은 255자 이하여야 합니다.")
     private String upendLogoFileNm;
     
     //하단로고파일명
+    @Size(max = 255, message = "하단로고파일명은 255자 이하여야 합니다.")
     private String lptLogoFileNm;
     
     //대표이미지파일명
+    @Size(max = 255, message = "대표이미지파일명은 255자 이하여야 합니다.")
     private String peprsntImageFileNm;
     
     //슬로건파일명
+    @Size(max = 255, message = "슬로건파일명은 255자 이하여야 합니다.")
     private String sloganFileNm;
     
     //슬로건대체텍스트
+    @Size(max = 2500, message = "슬로건대체텍스트는 2500자 이하여야 합니다.")
     private String sloganReplcText;
     
     //주소파일명
+    @Size(max = 255, message = "주소파일명은 255자 이하여야 합니다.")
     private String adresFileNm;
     
     //주소대체텍스트
+    @Size(max = 2500, message = "주소대체텍스트는 2500자 이하여야 합니다.")
     private String adresReplcText;
     
     //개인정보보호정책
@@ -62,36 +77,48 @@
 	private String marktPolicy;
 
     //레이아웃소스ID
+    @Size(max = 20, message = "레이아웃소스ID는 20자 이하여야 합니다.")
     private String lytSourcId;
     
     //레이아웃템플릿ID
+    @Size(max = 20, message = "레이아웃템플릿ID는 20자 이하여야 합니다.")
     private String lytTmplatId;
     
     //커뮤니티소스ID
+    @Size(max = 20, message = "커뮤니티소스ID는 20자 이하여야 합니다.")
     private String cmySourcId;
     
     //커뮤니티템플릿ID
+    @Size(max = 20, message = "커뮤니티템플릿ID는 20자 이하여야 합니다.")
     private String cmyTmplatId;
     
     //모바일사용여부
+    @NotBlank(message = "모바일사용여부는 필수입니다.")
+    @Size(max = 1, message = "모바일사용여부는 1자여야 합니다.")
     private String mobileUseAt = "N";
 
     //활성여부
+    @NotBlank(message = "활성여부는 필수입니다.")
+    @Size(max = 1, message = "활성여부는 1자여야 합니다.")
     private String actvtyAt = "Y";
 
     //사용여부
+    @NotBlank(message = "사용여부는 필수입니다.")
+    @Size(max = 1, message = "사용여부는 1자여야 합니다.")
     private String useAt = "Y";
     
     //최초등록시점
     private java.util.Date frstRegisterPnttm;
 
     //최초등록자ID
+    @Size(max = 100, message = "최초등록자ID는 100자 이하여야 합니다.")
     private String frstRegisterId;
 
     //최종수정시점
     private java.util.Date lastUpdusrPnttm;
 
     //최종수정자ID
+    @Size(max = 100, message = "최종수정자ID는 100자 이하여야 합니다.")
     private String lastUpdusrId;
     
     //최종수정일
@@ -122,57 +149,82 @@
     private long popupLastModified = 0L;
     
     //저작권신고서비스
+    @Size(max = 2500, message = "저작권신고서비스는 2500자 이하여야 합니다.")
     private String cpyrhtSttemntSvc;
     
     //브라우저타이틀
+    @Size(max = 100, message = "브라우저타이틀은 100자 이하여야 합니다.")
     private String brwsrSj;
     
     //전화번호
+    @Size(max = 15, message = "전화번호는 15자 이하여야 합니다.")
     private String tlphonNo;
     
     //팩스번호
+    @Size(max = 15, message = "팩스번호는 15자 이하여야 합니다.")
     private String faxNo;
     
     //주소
+    @Size(max = 100, message = "주소는 100자 이하여야 합니다.")
     private String adres;
     
     //마우스보안적용여부
+    @NotBlank(message = "마우스보안적용여부는 필수입니다.")
+    @Size(max = 1, message = "마우스보안적용여부는 1자여야 합니다.")
     private String mouseScrtyApplcAt = "N";
     
     //키보드보안적용여부
+    @NotBlank(message = "키보드보안적용여부는 필수입니다.")
+    @Size(max = 1, message = "키보드보안적용여부는 1자여야 합니다.")
     private String kybrdScrtyApplcAt = "N";
     
     //중복로그인허용여부
+    @NotBlank(message = "중복로그인허용여부는 필수입니다.")
+    @Size(max = 1, message = "중복로그인허용여부는 1자여야 합니다.")
     private String dplctLoginPermAt = "Y";
     
     //비밀번호최소길이
+    @Size(max = 10, message = "비밀번호최소길이는 10자 이하여야 합니다.")
     private String passwordMummLt = "4";
     
     //비밀번호최대길이
+    @Size(max = 10, message = "비밀번호최대길이는 10자 이하여야 합니다.")
     private String passwordMxmmLt = "20";
     
     //비밀번호숫자정책적용여부
+    @NotBlank(message = "비밀번호숫자정책적용여부는 필수입니다.")
+    @Size(max = 1, message = "비밀번호숫자정책적용여부는 1자여야 합니다.")
     private String passwordNumberPolicyAt = "Y";
     
     //비밀번호문자정책적용여부
+    @NotBlank(message = "비밀번호문자정책적용여부는 필수입니다.")
+    @Size(max = 1, message = "비밀번호문자정책적용여부는 1자여야 합니다.")
     private String passwordChrctrPolicyAt = "Y";
     
     //비밀번호특수문자정책적용여부
+    @NotBlank(message = "비밀번호특수문자정책적용여부는 필수입니다.")
+    @Size(max = 1, message = "비밀번호특수문자정책적용여부는 1자여야 합니다.")
     private String passwordSpclchrctrPolicyAt = "N";
     
     //비밀번호변경주기
+    @Size(max = 10, message = "비밀번호변경주기는 10자 이하여야 합니다.")
     private String passwordChangeCycle = "12";
     
     //기관코드
+    @Size(max = 15, message = "기관코드는 15자 이하여야 합니다.")
     private String insttCode;
     
     //기본 자동생성 메뉴여부
+    @NotBlank(message = "자동생성메뉴여부는 필수입니다.")
+    @Size(max = 1, message = "자동생성메뉴여부는 1자여야 합니다.")
     private String autoMakeMenuAt = "Y";
     
     //위도
+    @Size(max = 20, message = "위도는 20자 이하여야 합니다.")
     private String la;
     
     //경도
+    @Size(max = 20, message = "경도는 20자 이하여야 합니다.")
     private String lo;
     
     //메인컨텐츠리스트
@@ -184,60 +236,79 @@
     });
 
     //임시사이트아이디
+    @Size(max = 20, message = "임시사이트ID는 20자 이하여야 합니다.")
     private String takeSiteId = "";
     
     //보안설정 일괄적용여부
+    @Size(max = 1, message = "보안설정 일괄적용여부는 1자여야 합니다.")
     private String scrtySetupBtcbAt      = "";
        
     //보안정책 일괄적용여부
+    @Size(max = 1, message = "보안정책 일괄적용여부는 1자여야 합니다.")
     private String scrtyPolicyBtcbAt      = "";
      
     //활성화여부
+    @Size(max = 1, message = "활성화여부는 1자여야 합니다.")
     private String searchActvtyAt 	= "";
      
     //검색 Domain
+    @Size(max = 255, message = "검색 도메인은 255자 이하여야 합니다.")
     private String searchDomain = "";
      
     //검색 지역코드
+    @Size(max = 15, message = "검색 지역코드는 15자 이하여야 합니다.")
     private String searchBlngEduInstCd = "";
      
     //선택모드여부
+    @Size(max = 1, message = "선택모드여부는 1자여야 합니다.")
     private String selectMode = "N";
      
  	//검색 급코드
+    @Size(max = 10, message = "검색 급코드는 10자 이하여야 합니다.")
  	private String searchSchlGrdCd = "";
  	
  	//기관코드
+    @Size(max = 15, message = "기관코드는 15자 이하여야 합니다.")
  	private String orgCd = "";
  	
  	//대표기관코드
+    @Size(max = 15, message = "대표기관코드는 15자 이하여야 합니다.")
  	private String baseOrgCd = "";
  	
  	//대표지역코드
+    @Size(max = 15, message = "대표지역코드는 15자 이하여야 합니다.")
  	private String baseBlngCityCd = "";
  	
  	//지역코드
+    @Size(max = 15, message = "지역코드는 15자 이하여야 합니다.")
  	private String blngEduInstCd = "";
  	
  	//급명
+    @Size(max = 50, message = "급명은 50자 이하여야 합니다.")
  	private String schlGrdNm = "";
  	
  	//학교명
+    @Size(max = 30, message = "학교명은 30자 이하여야 합니다.")
  	private String schlNm = "";
  	
  	//지역명
+    @Size(max = 10, message = "지역명은 10자 이하여야 합니다.")
  	private String schlShrNm = "";
  	
  	//지역명
+    @Size(max = 10, message = "지역코드는 10자 이하여야 합니다.")
  	private String schlGrdCd = "";
  	
     //게시판ID
+    @Size(max = 20, message = "게시판ID는 20자 이하여야 합니다.")
     private String bbsId = "";
      
     //저장여부
+    @Size(max = 1, message = "저장여부는 1자여야 합니다.")
     private String saveAt = "N";
      
     //초기화모드
+    @Size(max = 20, message = "초기화모드는 20자 이하여야 합니다.")
     private String initMode = "";
      
 	public String getSiteId() {
Add a comment
List