개인정보 수정 페이지 양식 변경.

master
강석 최 2023-02-22 12:00:08 +09:00
parent 1a995eb75b
commit 36af4dae92
4 changed files with 120 additions and 80 deletions

View File

@ -30,15 +30,7 @@ public class MyInfoController {
public ModelAndView myInfoPage(@AuthenticationPrincipal UserInfo loginUser, String activeTab){ public ModelAndView myInfoPage(@AuthenticationPrincipal UserInfo loginUser, String activeTab){
ModelAndView mav = new ModelAndView("user/myInfo"); ModelAndView mav = new ModelAndView("user/myInfo");
mav.addObject("userInfo", userInfoService.selectUserInfo(loginUser.getUserSeq())); mav.addObject("userInfo", userInfoService.selectUserInfo(loginUser.getUserSeq()));
mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG"));
mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC"));
mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT"));
mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC"));
mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC"));
mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG"));
mav.addObject("statusList", codeMgtService.selectCodeMgtList("USC"));
mav.addObject("activeTab", activeTab); mav.addObject("activeTab", activeTab);
mav.addObject("dashboardConfigList", userInfoService.getDashboardConfigList(loginUser.getUserSeq())); mav.addObject("dashboardConfigList", userInfoService.getDashboardConfigList(loginUser.getUserSeq()));
return mav; return mav;
} }

View File

@ -8,6 +8,7 @@ import com.dbnt.faisp.main.userInfo.model.*;
import com.dbnt.faisp.main.userInfo.repository.*; import com.dbnt.faisp.main.userInfo.repository.*;
import com.dbnt.faisp.util.ParamMap; import com.dbnt.faisp.util.ParamMap;
import com.dbnt.faisp.util.Utils;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
@ -51,69 +52,84 @@ public class UserInfoService implements UserDetailsService {
public void updateUserInfo(UserInfo loginUser,UserInfo userInfo){ public void updateUserInfo(UserInfo loginUser,UserInfo userInfo){
UserInfo savedInfo = userInfoRepository.findById(userInfo.getUserSeq()).orElse(null); UserInfo savedInfo = userInfoRepository.findById(userInfo.getUserSeq()).orElse(null);
if(savedInfo!=null){ if(savedInfo!=null){
if(!ObjectUtils.isEmpty(userInfo.getDicCode())){ if(!Utils.isEmpty(userInfo.getDicCode())){
savedInfo.setDicCode(userInfo.getDicCode()); savedInfo.setDicCode(userInfo.getDicCode());
} }
if(!ObjectUtils.isEmpty(userInfo.getUserNm())){ if(!Utils.isEmpty(userInfo.getUserNm())){
savedInfo.setUserNm(userInfo.getUserNm()); savedInfo.setUserNm(userInfo.getUserNm());
} }
if(!ObjectUtils.isEmpty(userInfo.getPassword())){ if(!Utils.isEmpty(userInfo.getPassword())){
savedInfo.setPassword(convertPassword(userInfo.getPassword())); savedInfo.setPassword(convertPassword(userInfo.getPassword()));
} }
if(!ObjectUtils.isEmpty(userInfo.getPhoneNo())){ if(!Utils.isEmpty(userInfo.getPhoneNo())){
savedInfo.setPhoneNo(userInfo.getPhoneNo()); savedInfo.setPhoneNo(userInfo.getPhoneNo());
} }
if(!ObjectUtils.isEmpty(userInfo.getEmail())){ if(!Utils.isEmpty(userInfo.getEmail())){
savedInfo.setEmail(userInfo.getEmail()); savedInfo.setEmail(userInfo.getEmail());
} }
if(!ObjectUtils.isEmpty(userInfo.getSex())){ if(!Utils.isEmpty(userInfo.getSex())){
savedInfo.setSex(userInfo.getSex()); savedInfo.setSex(userInfo.getSex());
} }
if(!ObjectUtils.isEmpty(userInfo.getOgCd())){ if(!Utils.isEmpty(userInfo.getOgCd())){
savedInfo.setOgCd(userInfo.getOgCd()); savedInfo.setOgCd(userInfo.getOgCd());
} }
if(!ObjectUtils.isEmpty(userInfo.getOfcCd())){ if(!Utils.isEmpty(userInfo.getOfcCd())){
savedInfo.setOfcCd(userInfo.getOfcCd()); savedInfo.setOfcCd(userInfo.getOfcCd());
} }
if(!ObjectUtils.isEmpty(userInfo.getTitleCd())){ if(!Utils.isEmpty(userInfo.getTitleCd())){
savedInfo.setTitleCd(userInfo.getTitleCd()); savedInfo.setTitleCd(userInfo.getTitleCd());
} }
if(!ObjectUtils.isEmpty(userInfo.getOutturnCd())){ if(!Utils.isEmpty(userInfo.getOutturnCd())){
savedInfo.setOutturnCd(userInfo.getOutturnCd()); savedInfo.setOutturnCd(userInfo.getOutturnCd());
} }
if(!ObjectUtils.isEmpty(userInfo.getSeriesCd())){ if(!Utils.isEmpty(userInfo.getSeriesCd())){
savedInfo.setSeriesCd(userInfo.getSeriesCd()); savedInfo.setSeriesCd(userInfo.getSeriesCd());
} }
if(!ObjectUtils.isEmpty(userInfo.getBirthDate())){ if(!Utils.isEmpty(userInfo.getBirthDate())){
savedInfo.setBirthDate(userInfo.getBirthDate()); savedInfo.setBirthDate(userInfo.getBirthDate());
} }
if(!ObjectUtils.isEmpty(userInfo.getPoliceInDate())){ if(!Utils.isEmpty(userInfo.getPoliceInDate())){
savedInfo.setPoliceInDate(userInfo.getPoliceInDate()); savedInfo.setPoliceInDate(userInfo.getPoliceInDate());
} }
if(!ObjectUtils.isEmpty(userInfo.getOrganInDate())){ if(!Utils.isEmpty(userInfo.getOrganInDate())){
savedInfo.setOrganInDate(userInfo.getOrganInDate()); savedInfo.setOrganInDate(userInfo.getOrganInDate());
} }
if(!ObjectUtils.isEmpty(userInfo.getOfcInDate())){ if(!Utils.isEmpty(userInfo.getOfcInDate())){
savedInfo.setOfcInDate(userInfo.getOfcInDate()); savedInfo.setOfcInDate(userInfo.getOfcInDate());
} }
if(!ObjectUtils.isEmpty(userInfo.getTitleInDate())){ if(!Utils.isEmpty(userInfo.getTitleInDate())){
savedInfo.setTitleInDate(userInfo.getTitleInDate()); savedInfo.setTitleInDate(userInfo.getTitleInDate());
} }
if(!ObjectUtils.isEmpty(userInfo.getLanguageCd())){ if(!Utils.isEmpty(userInfo.getLanguageCd())){
savedInfo.setLanguageCd(userInfo.getLanguageCd()); savedInfo.setLanguageCd(userInfo.getLanguageCd());
} }
if(!ObjectUtils.isEmpty(userInfo.getOfcHeadYn())){ if(!Utils.isEmpty(userInfo.getOfcHeadYn())){
savedInfo.setOfcHeadYn(userInfo.getOfcHeadYn()); savedInfo.setOfcHeadYn(userInfo.getOfcHeadYn());
} }
if(!ObjectUtils.isEmpty(userInfo.getUserRole())){ if(!Utils.isEmpty(userInfo.getUserRole())){
savedInfo.setUserRole(userInfo.getUserRole()); savedInfo.setUserRole(userInfo.getUserRole());
} }
if(!ObjectUtils.isEmpty(userInfo.getUserStatus())){ if(!Utils.isEmpty(userInfo.getUserStatus())){
savedInfo.setUserStatus(userInfo.getUserStatus()); savedInfo.setUserStatus(userInfo.getUserStatus());
} }
if(!ObjectUtils.isEmpty(userInfo.getDutyCd())){ if(!Utils.isEmpty(userInfo.getDutyCd())){
savedInfo.setDutyCd(userInfo.getDutyCd()); savedInfo.setDutyCd(userInfo.getDutyCd());
} }
if(!Utils.isEmpty(userInfo.getUseLanguage())){
savedInfo.setUseLanguage(userInfo.getUseLanguage());
}
if(!Utils.isEmpty(userInfo.getLanguageGrd())){
savedInfo.setLanguageGrd(userInfo.getLanguageGrd());
}
if(!Utils.isEmpty(userInfo.getEducationGrd())){
savedInfo.setEducationGrd(userInfo.getEducationGrd());
}
if(!Utils.isEmpty(userInfo.getSchool())){
savedInfo.setSchool(userInfo.getSchool());
}
if(!Utils.isEmpty(userInfo.getSpecialism())){
savedInfo.setSpecialism(userInfo.getSpecialism());
}
userInfoRepository.save(savedInfo); userInfoRepository.save(savedInfo);
saveUserInfoHistory(savedInfo, loginUser); saveUserInfoHistory(savedInfo, loginUser);
} }

View File

@ -20,7 +20,9 @@ $(function (){
}) })
$(document).on('click', '#updateBtn', function (){ $(document).on('click', '#updateBtn', function (){
if(confirm("저장하시겠습니까?")){ if(confirm("저장하시겠습니까?")){
const formData = new FormData($("#userInfoUpdate")[0]); const form = $("#userInfoUpdate");
form.find('input, select').removeAttr('disabled');
const formData = new FormData(form[0]);
let flag = true let flag = true
const passwordChange = $("#passwordChange"); const passwordChange = $("#passwordChange");
if(passwordChange.val()){ if(passwordChange.val()){

View File

@ -36,10 +36,12 @@
<form id="userInfoUpdate" action="#" method="post"> <form id="userInfoUpdate" action="#" method="post">
<input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/> <input type="hidden" name="_csrf_header" th:value="${_csrf.headerName}"/>
<input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/> <input type="hidden" th:name="${_csrf.parameterName}" th:value="${_csrf.token}"/>
<div class="mb-3 mt-3 row"> <div class="mb-1 mt-3 row">
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">디지털식별코드</label> <label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">디지털식별코드</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" th:value="${userInfo.dicCode}"> <input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" th:value="${userInfo.dicCode}" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
</div>
<div class="col-sm-2">
</div> </div>
<div class="col-sm-6"> <div class="col-sm-6">
<div class="row justify-content-end"> <div class="row justify-content-end">
@ -55,115 +57,111 @@
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label> <label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off" th:value="${userInfo.userId}" readonly> <input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off" th:value="${userInfo.userId}" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
<label for="userId" style="font-size: 12px">아이디는 수정할 수 없습니다.</label>
</div> </div>
<label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label> <label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class=" form-control form-control-sm" id="userNm" name="userNm" autocomplete="off" th:value="${userInfo.userNm}"> <input type="text" class=" form-control form-control-sm" id="userNm" name="userNm" autocomplete="off" th:value="${userInfo.userNm}" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="modalPassword" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호</label> <label for="passwordChange" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="password" class="form-control form-control-sm" id="passwordChange" name="passwordChange" autocomplete="new-password"> <input type="password" class="form-control form-control-sm" id="passwordChange" name="passwordChange" autocomplete="new-password">
<label for="userId" style="font-size: 12px">8~16자 사이의 알파벳, 숫자, 특수문자 조합</label>
</div> </div>
<label for="passwordConfirm" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호 확인</label> <label for="passwordConfirm" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호 확인</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="password" class="form-control form-control-sm" id="passwordConfirm"> <input type="password" class="form-control form-control-sm" id="passwordConfirm">
</div> </div>
</div> </div>
<div class="row mb-1">
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">휴대전화</label>
<div class="col-sm-4">
<input type="tel" class="form-control form-control-sm" id="phoneNo" name="phoneNo" th:value="${userInfo.phoneNo}">
</div>
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">이메일</label>
<div class="col-sm-4">
<input type="email" class="form-control form-control-sm" id="email" name="email" th:value="${userInfo.email}">
</div>
</div>
<div class="row mb-1"> <div class="row mb-1">
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label> <label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
<div class="col-sm-4"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="sex" name="sex"> <select class="form-select form-select-sm" id="sex" name="sex" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
<option value="SEX002" th:selected="${userInfo.sex eq 'SEX002'}"></option> <option value="SEX002" th:selected="${userInfo.sex eq 'SEX002'}"></option>
<option value="SEX001" th:selected="${userInfo.sex eq 'SEX001'}"></option> <option value="SEX001" th:selected="${userInfo.sex eq 'SEX001'}"></option>
</select> </select>
</div> </div>
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">휴대전화</label>
<div class="col-sm-2">
<input type="tel" class="form-control form-control-sm" id="phoneNo" name="phoneNo" th:value="${userInfo.phoneNo}">
</div>
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">이메일</label>
<div class="col-sm-2">
<input type="email" class="form-control form-control-sm" id="email" name="email" th:value="${userInfo.email}">
</div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="birthDate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label> <label for="birthDate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="birthDate" name="birthDate" th:value="${userInfo.birthDate}" readonly> <input type="text" class="form-control form-control-sm dateSelector" id="birthDate" name="birthDate" th:value="${userInfo.birthDate}" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
</div> </div>
<label for="policeInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">해양경찰배명일</label> <label for="policeInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">해양경찰배명일</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="policeInDate" name="policeInDate" th:value="${userInfo.policeInDate}" readonly> <input type="text" class="form-control form-control-sm dateSelector" id="policeInDate" name="policeInDate" th:value="${userInfo.policeInDate}" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label> <label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label>
<div class="col-sm-4"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="ogCd" name="ogCd"> <select class="form-select form-select-sm" id="ogCd" name="ogCd" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
<option value="">--선택--</option> <option value="">--선택--</option>
<th:block th:each="code:${ogList}"> <th:block th:each="code:${session.commonCode.get('OG')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ogCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ogCd}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="organInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현관서전입일</label> <label for="organInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현관서전입일</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="organInDate" name="organInDate" th:value="${userInfo.organInDate}" readonly> <input type="text" class="form-control form-control-sm dateSelector" id="organInDate" name="organInDate" th:value="${userInfo.organInDate}" readonly>
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label> <label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label>
<div class="col-sm-4"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="ofcCd" name="ofcCd"> <select class="form-select form-select-sm" id="ofcCd" name="ofcCd" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
<option value="">--선택--</option> <option value="">--선택--</option>
<th:block th:each="code:${ofcList}"> <th:block th:each="code:${session.commonCode.get('OFC')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ofcCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ofcCd}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="ofcInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현부서임용일</label> <label for="ofcInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현부서임용일</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="ofcInDate" name="ofcInDate" th:value="${userInfo.ofcInDate}" readonly> <input type="text" class="form-control form-control-sm dateSelector" id="ofcInDate" name="ofcInDate" th:value="${userInfo.ofcInDate}" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label> <label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label>
<div class="col-sm-4"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="titleCd" name="titleCd"> <select class="form-select form-select-sm" id="titleCd" name="titleCd" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
<option value="">--선택--</option> <option value="">--선택--</option>
<th:block th:each="code:${titleList}"> <th:block th:each="code:${session.commonCode.get('JT')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.titleCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.titleCd}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="titleInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현계급임용일</label> <label for="titleInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현계급임용일</label>
<div class="col-sm-4"> <div class="col-sm-2">
<input type="text" class="form-control form-control-sm dateSelector" id="titleInDate" name="titleInDate" th:value="${userInfo.titleInDate}" readonly> <input type="text" class="form-control form-control-sm dateSelector" id="titleInDate" name="titleInDate" th:value="${userInfo.titleInDate}" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
</div> </div>
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="outturnCd" class="col-sm-2 col-form-label col-form-label-sm text-center">경과</label> <label for="outturnCd" class="col-sm-2 col-form-label col-form-label-sm text-center">경과</label>
<div class="col-sm-4"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="outturnCd" name="outturnCd"> <select class="form-select form-select-sm" id="outturnCd" name="outturnCd" th:disabled="${!#strings.isEmpty(userInfo.dicCode)}">
<option value="">--선택--</option> <option value="">--선택--</option>
<th:block th:each="code:${outturnList}"> <th:block th:each="code:${session.commonCode.get('OTC')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.outturnCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.outturnCd}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="seriesCd" class="col-sm-2 col-form-label col-form-label-sm text-center">직별</label> <label for="seriesCd" class="col-sm-2 col-form-label col-form-label-sm text-center">직별</label>
<div class="col-sm-4"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="seriesCd" name="seriesCd"> <select class="form-select form-select-sm" id="seriesCd" name="seriesCd">
<option value="">--선택--</option> <option value="">--선택--</option>
<th:block th:each="code:${seriesList}"> <th:block th:each="code:${session.commonCode.get(userInfo.outturnCd)}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.seriesCd}"></option> <option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.seriesCd}"></option>
</th:block> </th:block>
</select> </select>
@ -171,14 +169,46 @@
</div> </div>
<div class="row mb-1"> <div class="row mb-1">
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어특채</label> <label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어특채</label>
<div class="col-sm-4"> <div class="col-sm-2">
<select class="form-select form-select-sm" id="languageCd" name="languageCd"> <select class="form-select form-select-sm" id="languageCd" name="languageCd">
<option value="">--선택--</option> <option value="">--선택--</option>
<th:block th:each="code:${languageList}"> <th:block th:each="code:${session.commonCode.get('LNG')}">
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.languageCd}"></option> <option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.languageCd}"></option>
</th:block> </th:block>
</select> </select>
</div> </div>
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">구사 외국어</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="useLanguage" th:value="${userInfo.useLanguage}">
</div>
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">수준</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="languageGrd">
<option value="">해당없음</option>
<option value="1" th:selected="${userInfo.languageGrd eq '1'}"></option>
<option value="2" th:selected="${userInfo.languageGrd eq '2'}"></option>
<option value="3" th:selected="${userInfo.languageGrd eq '3'}"></option>
</select>
</div>
</div>
<div class="row mb-1">
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
<div class="col-sm-2">
<select class="form-select form-select-sm" name="educationGrd">
<option value="">해당없음</option>
<th:block th:each="code:${session.commonCode.get('UED')}">
<option th:if="${code.useChk eq 'T'}" th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.educationGrd}"></option>
</th:block>
</select>
</div>
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">학교</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="school" th:value="${userInfo.school}">
</div>
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">전공</label>
<div class="col-sm-2">
<input type="text" class="form-control form-control-sm" name="specialism" th:value="${userInfo.specialism}">
</div>
</div> </div>
</form> </form>
</div> </div>