발생
- 관리자 권한으로 사용자의 정보를 수정하는 기능을 구현할 때 form 데이터가 controller로 넘어오면서 일부 데이터 소실
- form 태그에 disabled=”true”을 명시한 데이터만 소실
원인
- disabled=”true”를 설정할 경우 그 데이터는 null값이 담긴 상태로 post됨.
<div>
<p>대출코드</p>
<form:input path="borrowId" disabled="true" />
</div>
해결
- 관리자가 사용자의 정보를 마음대로 변환할 수 없으므로 정보는 보여지지만, 수정은 불가한 상태로 바꿔야 함.
input 설정 readonly값 설정
- jsp의 경우 readonly=”readonly”가 아니라 readonly=”true”
- readonly와 disabled의 차이
- form으로 값 전송 시 disabled는 값 전송 X, readonly는 값 전송 O
<div>
<p>대출코드</p>
<form:input path="borrowId" readonly="true" />
</div>
readonly의 css 형식을 disabled처럼 바꾸기
- readonly의 경우 일반 input과 같은 css 형식 유지
.readonly,
.readonly:focus {
outline: none;
background: #f8f8f8;
border: #d7d7d7 1px solid;
color: #4c4d4f;
}
input[readonly] {
outline: none;
background: #f8f8f8;
border: #d7d7d7 1px solid;
color: #4c4d4f;
}