textarea 태그가있는 html 페이지가 있습니다.
텍스트 영역 (및 해당 postgres db 필드)은 1000자를 허용합니다.
1000 자 (단어 사이의 공백 포함)로 된 단일 단락 텍스트를 작성하고 저장을 클릭하면 db에 올바르게 저장됩니다.
그러나 한 문자를 줄 바꿈으로 바꾸면 저장을 클릭하면 다음 오류가 발생합니다.
org.postgresql.util.PSQLException: ERROR: value too long for type character varying(1000)
컨트롤러 방법을 입력하기 전에 오류가 발생합니다.
왜 그럴까요?
문제는 줄 바꿈을 허용하는 것이 아닙니다.
전체 문자 수가 제한 (총 900 개)보다 훨씬 적 으면 여러 줄 바꿈을 삽입 할 수 있고 잘 저장되기 때문입니다.
따라서 문자 제한에 가까워 졌을 때 줄 바꿈을 수락하면 오류가 발생하는 이유를 이해할 수 없습니다.
다음은 코드입니다.
<textarea type="text" name="description" maxlength="1000" th:text="${descBind.description}" cols="55" rows="16"></textarea>
</br> <input type="submit" name="btnSave" value="Save" />
모델
@Entity
public class Desc implements Serializable {
private static final long serialVersionUID = 1L;
@Column(length = 1000)
private String description;
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
제어 장치
@RequestMapping(value = "descriptionpage", params = "btnSave", method = RequestMethod.POST)
public ModelAndView save(@ModelAttribute Desc desc, RedirectAttributes attributes) {
//code to update the db
ModelAndView modelAndView = new ModelAndView("descriptionpage.html");
modelAndView.addObject("descBind", desc);
return modelAndView;
}