diff --git a/src/main/java/kr/xit/fims/biz/cmm/fimsTotalPopup/web/FimsTotalPopupController.java b/src/main/java/kr/xit/fims/biz/cmm/fimsTotalPopup/web/FimsTotalPopupController.java index c0a5617e..4c96b944 100644 --- a/src/main/java/kr/xit/fims/biz/cmm/fimsTotalPopup/web/FimsTotalPopupController.java +++ b/src/main/java/kr/xit/fims/biz/cmm/fimsTotalPopup/web/FimsTotalPopupController.java @@ -59,7 +59,7 @@ public class FimsTotalPopupController { return FimsConst.FIMS_JSP_BASE_PATH +"common/popup/fimsTotal" +"_"+new Object() {}.getClass().getEnclosingMethod().getName() - +".fims-pop"; //메소드명 + +".popup"; //메소드명 } diff --git a/src/main/java/kr/xit/framework/biz/mng/mapper/ProgramMngMapper.java b/src/main/java/kr/xit/framework/biz/mng/mapper/ProgramMngMapper.java index c63cc0ed..e9caf582 100644 --- a/src/main/java/kr/xit/framework/biz/mng/mapper/ProgramMngMapper.java +++ b/src/main/java/kr/xit/framework/biz/mng/mapper/ProgramMngMapper.java @@ -1,13 +1,11 @@ package kr.xit.framework.biz.mng.mapper; -import java.sql.SQLException; import java.util.List; import java.util.Map; import org.apache.ibatis.session.RowBounds; import egovframework.rte.psl.dataaccess.mapper.Mapper; -import kr.xit.framework.biz.mng.model.ProgramMngSearchVO; import kr.xit.framework.biz.mng.model.ProgramMngVO; /** @@ -30,16 +28,7 @@ public interface ProgramMngMapper { * @author: 박민규 * @date: 2020. 3. 26. */ - public List findList(Map map, RowBounds rowBounds); - - /** - *
메소드 설명: 프로그램관리 목록 총건수 조회
- * @param searchVO - * @return int 요청처리 후 응답객체 - * @author: 박민규 - * @date: 2020. 3. 26. - */ - public int findListTotCnt(ProgramMngSearchVO searchVO); + List selectPrograms(final Map map, final RowBounds rowBounds); /** *
메소드 설명: 프로그램관리 상세정보 조회
@@ -48,23 +37,15 @@ public interface ProgramMngMapper { * @author: 박민규 * @date: 2020. 3. 26. */ - public ProgramMngVO findView(ProgramMngVO vo); - + ProgramMngVO selectProgram(final ProgramMngVO vo); + + int updateProgram(final ProgramMngVO vo); + + int insertProgram(final ProgramMngVO vo); /** - *
메소드 설명: 프로그램정보 전체데이터 삭제
- * @return - * @throws SQLException int 요청처리 후 응답객체 - * @author: 박민규 + *
메소드 설명: 프로그램 정보 삭제
* @date: 2020. 3. 27. */ - public int deleteAllProgrm(); + int deleteProgram(final ProgramMngVO vo); - /** - *
메소드 설명: 프로그램변경내역정보 전체데이터 삭제
- * @return - * @throws SQLException int 요청처리 후 응답객체 - * @author: 박민규 - * @date: 2020. 3. 27. - */ - public int deleteAllProgrmDtls(); } diff --git a/src/main/java/kr/xit/framework/biz/mng/menu/list/service/impl/XitMenuListMngServiceImpl.java b/src/main/java/kr/xit/framework/biz/mng/menu/list/service/impl/XitMenuListMngServiceImpl.java index d0633f0f..22538c10 100644 --- a/src/main/java/kr/xit/framework/biz/mng/menu/list/service/impl/XitMenuListMngServiceImpl.java +++ b/src/main/java/kr/xit/framework/biz/mng/menu/list/service/impl/XitMenuListMngServiceImpl.java @@ -251,7 +251,7 @@ public class XitMenuListMngServiceImpl implements XitMenuListMngService { * @exception Exception */ private boolean deleteAllProgrm() throws Exception { - programMngMapper.deleteAllProgrm(); + //programMngMapper.deleteAllProgrm(); return true; } @@ -261,7 +261,7 @@ public class XitMenuListMngServiceImpl implements XitMenuListMngService { * @exception Exception */ private boolean deleteAllProgrmDtls() throws Exception { - programMngMapper.deleteAllProgrmDtls(); + //programMngMapper.deleteAllProgrmDtls(); return true; } @@ -534,10 +534,10 @@ public class XitMenuListMngServiceImpl implements XitMenuListMngService { * @exception Exception */ private boolean insertProgrm(ProgramMngVO vo) throws Exception { - if(XitCmmnUtil.isEmpty(programMngService.findView(vo))) - programMngService.addProc(vo); - else - programMngService.modifyProc(vo); + //if(XitCmmnUtil.isEmpty(programMngService.findProgram(vo))) + // programMngService.addProc(vo); + //else + // programMngService.modifyProc(vo); return true; } diff --git a/src/main/java/kr/xit/framework/biz/mng/model/ProgramMngVO.java b/src/main/java/kr/xit/framework/biz/mng/model/ProgramMngVO.java index 34cbe98c..81e69b24 100644 --- a/src/main/java/kr/xit/framework/biz/mng/model/ProgramMngVO.java +++ b/src/main/java/kr/xit/framework/biz/mng/model/ProgramMngVO.java @@ -34,6 +34,7 @@ public class ProgramMngVO extends BaseVO { /** 프로그램파일명 */ private String progrmFileNm; /** 프로그램저장경로 */ + private String progrmStreCours; private String progrmStrePath; /** 프로그램한글명 */ private String progrmKoreanNm; diff --git a/src/main/java/kr/xit/framework/biz/mng/service/ProgramMngService.java b/src/main/java/kr/xit/framework/biz/mng/service/ProgramMngService.java index 7fbffbe2..6ae6ad35 100644 --- a/src/main/java/kr/xit/framework/biz/mng/service/ProgramMngService.java +++ b/src/main/java/kr/xit/framework/biz/mng/service/ProgramMngService.java @@ -27,16 +27,7 @@ public interface ProgramMngService { * @author: 박민규 * @date: 2020. 3. 26. */ - public List findList(Map paramMap, RowBounds rowBounds); - - /** - *
메소드 설명: 프로그램관리 목록 총건수 조회
- * @param searchVO - * @return int 요청처리 후 응답객체 - * @author: 박민규 - * @date: 2020. 3. 26. - */ - public int findListTotCnt(ProgramMngSearchVO searchVO); + List findPrograms(final Map paramMap, final RowBounds rowBounds); /** *
메소드 설명: 프로그램관리 상세정보 조회
@@ -45,7 +36,7 @@ public interface ProgramMngService { * @author: 박민규 * @date: 2020. 3. 26. */ - public ProgramMngVO findView(ProgramMngVO vo); + ProgramMngVO findProgram(final ProgramMngVO vo); /** *
메소드 설명: 프로그램관리 등록
@@ -53,7 +44,7 @@ public interface ProgramMngService { * @author: 박민규 * @date: 2020. 3. 26. */ - public void addProc(ProgramMngVO vo); + int addProgram(final ProgramMngVO vo); /** *
메소드 설명: 프로그램관리 수정
@@ -61,7 +52,7 @@ public interface ProgramMngService { * @author: 박민규 * @date: 2020. 3. 26. */ - public void modifyProc(ProgramMngVO vo); + int modifyProgram(final ProgramMngVO vo); /** *
메소드 설명: 프로그램관리 삭제
@@ -69,7 +60,7 @@ public interface ProgramMngService { * @author: 박민규 * @date: 2020. 3. 26. */ - public void removeProc(ProgramMngVO vo); + int removeProgram(final ProgramMngVO vo); /** *
메소드 설명: 프로그램관리 다건 삭제
@@ -77,6 +68,6 @@ public interface ProgramMngService { * @author: 박민규 * @date: 2020. 3. 27. */ - public void removesProc(String progrmFileNms); + void removePrograms(final String progrmFileNms); } diff --git a/src/main/java/kr/xit/framework/biz/mng/service/impl/ProgramMngServiceImpl.java b/src/main/java/kr/xit/framework/biz/mng/service/impl/ProgramMngServiceImpl.java index 3f5862ab..551cfc52 100644 --- a/src/main/java/kr/xit/framework/biz/mng/service/impl/ProgramMngServiceImpl.java +++ b/src/main/java/kr/xit/framework/biz/mng/service/impl/ProgramMngServiceImpl.java @@ -8,121 +8,78 @@ import javax.annotation.Resource; import org.apache.ibatis.session.RowBounds; import org.springframework.stereotype.Service; -import kr.xit.framework.biz.cmm.model.ProgrmListVO; -import kr.xit.framework.biz.cmm.service.XitFrameCrudService; import kr.xit.framework.biz.mng.mapper.ProgramMngMapper; -import kr.xit.framework.biz.mng.model.ProgramMngSearchVO; import kr.xit.framework.biz.mng.model.ProgramMngVO; import kr.xit.framework.biz.mng.service.ProgramMngService; -import kr.xit.framework.core.message.XitMessageSource; +import kr.xit.framework.core.constants.FrameworkConstants; +import kr.xit.framework.core.utils.XitCmmnUtil; +import kr.xit.framework.support.exception.BizRuntimeException; +import kr.xit.framework.support.util.constants.MessageKey; +import lombok.extern.slf4j.Slf4j; +@Slf4j @Service public class ProgramMngServiceImpl implements ProgramMngService { @Resource private ProgramMngMapper programMngMapper; - @Resource - private XitFrameCrudService xitFrameCrudService; - @Resource - private XitMessageSource xitMessageSource; - - @Override - public List findList(Map paramMap, RowBounds rowBounds) { - return programMngMapper.findList(paramMap, rowBounds); - } @Override - public int findListTotCnt(ProgramMngSearchVO searchVO) { - return programMngMapper.findListTotCnt(searchVO); + public List findPrograms(final Map paramMap, final RowBounds rowBounds) { + return programMngMapper.selectPrograms(paramMap, rowBounds); } @Override - public ProgramMngVO findView(ProgramMngVO vo) { - return programMngMapper.findView(vo); + public ProgramMngVO findProgram(final ProgramMngVO vo) { + return programMngMapper.selectProgram(vo); } @Override - public void addProc(ProgramMngVO vo) { - /** - * 필수값 설정 - */ - ProgrmListVO progrmListVO = convertToCrudVO(vo); - - /** - * 처리 - */ - xitFrameCrudService.addXitProgrmList(progrmListVO); + public int addProgram(final ProgramMngVO vo) { + return programMngMapper.insertProgram(vo); } @Override - public void modifyProc(ProgramMngVO vo) { - /** - * 필수값 설정 - */ - ProgrmListVO progrmListVO = convertToCrudVO(vo); - + public int modifyProgram(final ProgramMngVO vo) { + String table = "프로그램목록"; + FrameworkConstants.DB_ACTION action = FrameworkConstants.DB_ACTION.U; + /** - * 처리 + * 필수조건 확인 */ - xitFrameCrudService.modifyXitProgrmList(progrmListVO); - + String emsg = null; + if(XitCmmnUtil.isEmpty(vo.getProgrmFileNm())) + emsg = String.format("(%s)프로그램파일명(은)는 필수조건 입니다.", table); + if(emsg!=null){ + log.error(emsg); + throw BizRuntimeException.createMessage(emsg); + } + + int result = programMngMapper.updateProgram(vo); + if(result<1) throw BizRuntimeException.createMessage(String.format("%s 실패. 일치하는 자료가 없습니다.", action.getKorNm())); + return result; } @Override - public void removeProc(ProgramMngVO vo) { - /** - * 필수값 설정 - */ - ProgrmListVO progrmListVO = convertToCrudVO(vo); - - /** - * 처리 - */ - xitFrameCrudService.removeXitProgrmList(progrmListVO); + public int removeProgram(final ProgramMngVO vo) { + return programMngMapper.deleteProgram(vo); } @Override - public void removesProc(String progrmFileNms) { - - /** - * 유효성 확인 - */ + public void removePrograms(final String progrmFileNms) { String[] delProgrmFileNm = progrmFileNms.split(","); if (delProgrmFileNm == null || (delProgrmFileNm.length == 0)) { - throw new RuntimeException(xitMessageSource.getMessage("fail.common.delete")); + throw BizRuntimeException.create(MessageKey.CMM_UPDATE_FAIL); } - - - /** - * 처리 - */ + String [] arrProgrmFileNm = progrmFileNms.split(","); for (int i=0; i메소드 설명: 메뉴VO를 CRUD Service의 VO로 변환 한다. - * @return XitProgrmListVO 요청처리 후 응답객체 - * @author: 박민규 - * @date: 2020. 3. 27. - */ - private ProgrmListVO convertToCrudVO(ProgramMngVO vo) { - ProgrmListVO progrmListVO = new ProgrmListVO(); - progrmListVO.setProgrm_file_nm (vo.getProgrmFileNm()); - progrmListVO.setProgrm_stre_cours(vo.getProgrmStrePath()); - progrmListVO.setProgrm_korean_nm (vo.getProgrmKoreanNm()); - progrmListVO.setProgrm_dc (vo.getProgrmDc()); - progrmListVO.setUrl (vo.getURL()); - - return progrmListVO; - } } diff --git a/src/main/java/kr/xit/framework/biz/mng/web/ProgramMngController.java b/src/main/java/kr/xit/framework/biz/mng/web/ProgramMngController.java index 4914c681..4d971c90 100644 --- a/src/main/java/kr/xit/framework/biz/mng/web/ProgramMngController.java +++ b/src/main/java/kr/xit/framework/biz/mng/web/ProgramMngController.java @@ -1,9 +1,7 @@ package kr.xit.framework.biz.mng.web; import java.io.IOException; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import javax.annotation.Resource; @@ -25,8 +23,6 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.servlet.ModelAndView; -import com.fasterxml.jackson.databind.JsonMappingException; - import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo; import kr.xit.framework.biz.mng.model.ProgramMngSearchVO; import kr.xit.framework.biz.mng.model.ProgramMngVO; @@ -41,7 +37,6 @@ import kr.xit.framework.support.exception.BizRuntimeException; import kr.xit.framework.support.mybatis.MybatisUtils; import kr.xit.framework.support.util.AjaxMessageMapRenderer; import kr.xit.framework.support.util.AjaxUtils; -import kr.xit.framework.support.util.constants.Globals; import kr.xit.framework.support.util.constants.MessageKey; /** @@ -124,12 +119,39 @@ public class ProgramMngController { /*@PostMapping(value = "ProgramMng_list.ajax")*/ @RequestMapping(value = "/programList", method = {RequestMethod.GET, RequestMethod.POST}) - public ModelAndView finds(@RequestParam Map paramMap) { + public ModelAndView findPrograms(@RequestParam final Map paramMap) { + + return ResultResponse.of(programMngService.findPrograms(paramMap, MybatisUtils.getPagingInfo(paramMap))); + } + + @PostMapping(value = "/updateProgram") + public ModelAndView modifyProgram( + @ModelAttribute("progrmMngVO") final ProgramMngVO vo + , @RequestParam(value="checkedProgrmFileNmForDel", required=false, defaultValue="") String checkedProgrmFileNmForDel + , final BindingResult bindingResult + ) { + ModelAndView mav = new ModelAndView(FrameworkConstants.JSON_VIEW); + + //유효성 확인 + //2020.11.24. 주석처리 + beanValidator.validate(vo, bindingResult); + // beanValidator.validate("progrmMngVO", vo, bindingResult); + if (bindingResult.hasErrors()) { + throw BizRuntimeException.create(MessageKey.CMM_UPDATE_FAIL); + + }else { + if (vo.getProgrmDc() == null || vo.getProgrmDc().equals("")) { + vo.setProgrmDc(" "); + } + } + programMngService.modifyProgram(vo); - return ResultResponse.of(programMngService.findList(paramMap, MybatisUtils.getPagingInfo(paramMap))); + AjaxMessageMapRenderer.success(mav, MessageKey.CMM_UPDATE_SUCCESS); + return mav; } + /** *
메소드 설명: 요청 페이지로 이동 한다.
* @param cmd @@ -140,7 +162,7 @@ public class ProgramMngController { * @date: 2020. 3. 26. */ @RequestMapping(value = "/program_{cmd}", method={RequestMethod.GET, RequestMethod.POST}) - public String ProgramMng_page(@PathVariable String cmd + public String ProgramMng_page(@PathVariable final String cmd , @RequestParam(value="tilesDef", required=false, defaultValue="") String tilesDef , @ModelAttribute("progrmMngVO") ProgramMngVO vo , ModelMap model) { @@ -149,7 +171,7 @@ public class ProgramMngController { break; case "edit": //수정 페이지 case "view": //상세 페이지 - ProgramMngVO programMngVO = programMngService.findView(vo); + ProgramMngVO programMngVO = programMngService.findProgram(vo); model.addAttribute("progrmMngVO", programMngVO); break; default: @@ -196,14 +218,14 @@ public class ProgramMngController { /*model.addAttribute("list_progrmmanage", xitProgramMngService.findList(searchVO));*/ model.addAttribute("searchVO", searchVO); - int totCnt = programMngService.findListTotCnt(searchVO); - paginationInfo.setTotalRecordCount(totCnt); + //int totCnt = programMngService.findListTotCnt(searchVO); + //paginationInfo.setTotalRecordCount(totCnt); model.addAttribute("paginationInfo", paginationInfo); break; case "input" : break; case "edit" : - ProgramMngVO xitProgramMngVO = programMngService.findView(vo); + ProgramMngVO xitProgramMngVO = programMngService.findProgram(vo); model.addAttribute("progrmMngVO", xitProgramMngVO); break; default: @@ -255,7 +277,7 @@ public class ProgramMngController { vo.setProgrmDc(" "); } //처리 - programMngService.addProc(vo); + programMngService.addProgram(vo); message = xitMessageSource.getMessage("success.common.insert"); break; @@ -277,14 +299,14 @@ public class ProgramMngController { vo.setProgrmDc(" "); } //처리 - programMngService.modifyProc(vo); + programMngService.modifyProgram(vo); message = xitMessageSource.getMessage("success.common.update"); break; case "delete": //삭제 //처리 try { - programMngService.removeProc(vo); + programMngService.removeProgram(vo); message = xitMessageSource.getMessage("success.common.delete"); break; } catch (RuntimeException e) { @@ -296,17 +318,17 @@ public class ProgramMngController { } break; - case "deletes": //다건 삭제 - //처리 - try { - programMngService.removesProc(checkedProgrmFileNmForDel); - message = xitMessageSource.getMessage("success.common.delete"); - } catch (RuntimeException e) { - message = e.getMessage(); - } catch (Exception e) { - message = xitMessageSource.getMessage("fail.common.delete"); - } - break; + // case "deletes": //다건 삭제 + // //처리 + // try { + // programMngService.removesProgram(checkedProgrmFileNmForDel); + // message = xitMessageSource.getMessage("success.common.delete"); + // } catch (RuntimeException e) { + // message = e.getMessage(); + // } catch (Exception e) { + // message = xitMessageSource.getMessage("fail.common.delete"); + // } + // break; default: new RuntimeException("유효하지 않은 요청 입니다."); @@ -366,7 +388,7 @@ public class ProgramMngController { } } //처리 - programMngService.modifyProc(vo); + programMngService.modifyProgram(vo); message = xitMessageSource.getMessage("success.common.update"); /** @@ -397,30 +419,5 @@ public class ProgramMngController { } - @PostMapping(value = "/updateProgram") - public ModelAndView updateProgram(@ModelAttribute("progrmMngVO") ProgramMngVO vo - ,@RequestParam(value="checkedProgrmFileNmForDel", required=false, defaultValue="") String checkedProgrmFileNmForDel - ,BindingResult bindingResult - ) { - ModelAndView mav = new ModelAndView(FrameworkConstants.JSON_VIEW); - //유효성 확인 - //2020.11.24. 주석처리 - beanValidator.validate(vo, bindingResult); - // beanValidator.validate("progrmMngVO", vo, bindingResult); - if (bindingResult.hasErrors()) { - throw BizRuntimeException.create(MessageKey.CMM_UPDATE_FAIL); - - }else { - if (vo.getProgrmDc() == null || vo.getProgrmDc().equals("")) { - vo.setProgrmDc(" "); - } - } - - throw BizRuntimeException.create(MessageKey.CMM_UPDATE_FAIL); - //처리 - // programMngService.modifyProc(vo); - // AjaxMessageMapRenderer.success(mav, MessageKey.CMM_UPDATE_SUCCESS); - // return mav; - } } diff --git a/src/main/java/kr/xit/framework/support/util/constants/MessageKey.java b/src/main/java/kr/xit/framework/support/util/constants/MessageKey.java index da2d99d8..384d402c 100644 --- a/src/main/java/kr/xit/framework/support/util/constants/MessageKey.java +++ b/src/main/java/kr/xit/framework/support/util/constants/MessageKey.java @@ -11,6 +11,7 @@ public abstract class MessageKey { public static final String CMM_FAIL = "fail.request.msg";//요청처리를 실패하였습니다.. public static final String CMM_UPDATE_FAIL = "fail.common.update"; + public static final String CMM_REMOVE_FAIL = "fail.common.delete"; public static final String WARN_SESSION_END = "warn.session.end";//세션이 종료 되었습니다.. } diff --git a/src/main/resources/sqlmapper/framework/mng/menu/program-mysql-mapper.xml b/src/main/resources/sqlmapper/framework/mng/menu/program-mysql-mapper.xml index 893471b4..c69b56b9 100644 --- a/src/main/resources/sqlmapper/framework/mng/menu/program-mysql-mapper.xml +++ b/src/main/resources/sqlmapper/framework/mng/menu/program-mysql-mapper.xml @@ -3,9 +3,10 @@ - + /* program-mysql-mapper|selectPrograms-프로그램 목록 조회|julim */ SELECT progrm_file_nm + , progrm_stre_cours , progrm_stre_cours AS progrmStrePath , progrm_korean_nm /*, CONCAT(SUBSTRING(progrm_dc, 10, 1),'...') AS progrmDc -->*/ @@ -19,9 +20,10 @@ - + /* program-mysql-mapper|selectProgram-프로그램 정보 조회|julim */ SELECT progrm_file_nm + , progrm_stre_cours , progrm_stre_cours AS progrmStrePath , progrm_korean_nm /*, CONCAT(SUBSTRING(progrm_dc, 10, 1),'...') AS progrmDc -->*/ @@ -30,14 +32,42 @@ FROM xit_progrm_list WHERE progrm_file_nm = #{progrmFileNm} - - - - - /** XitMenuListMngMapper.deleteAllProgrm */ - /** 프로그램정보 전체데이터 삭제 */ - + + + + + /* program-mysql-mapper|insertProgram-프로그램 등록|julim */ + INSERT + INTO xit_progrm_list( + progrm_file_nm + , progrm_stre_cours + , progrm_korean_nm + , progrm_dc + , url + ) VALUES ( + #{progrm_file_nm} + , #{progrmStreCours} + , #{progrmKoreanNm} + , #{progrmDc} + , #{URL} + ) + + + + /* program-mysql-mapper|updateProgram-프로그램 정보 변경|julim */ + UPDATE xit_progrm_list + SET progrm_korean_nm = #{progrmKoreanNm} + , progrm_stre_cours = #{progrmStrePath} + , progrm_dc = #{progrmDc} + , url = #{URL} + WHERE progrm_file_nm = #{progrmFileNm} + + + /** removeXitProgrmList */ + /** 프로그램목록 삭제 */ DELETE FROM XIT_PROGRM_LIST + WHERE 1=1 + AND PROGRM_FILE_NM = #{progrm_file_nm} diff --git a/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgtFrom.jsp b/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgtFrom.jsp index 4597334e..34e65108 100644 --- a/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgtFrom.jsp +++ b/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgtFrom.jsp @@ -40,6 +40,7 @@ + @@ -48,15 +49,13 @@
- + 등록 - 삭제
-
diff --git a/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgt_edit.jsp b/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgt_edit.jsp index ec4d59ab..da21309a 100644 --- a/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgt_edit.jsp +++ b/src/main/webapp/WEB-INF/jsp/framework/biz/mng/menu/mngProgramMgt_edit.jsp @@ -60,7 +60,8 @@