해결: Failed to convert value of type'java.lang.String' to required type 'java.util.Date';
여기에서 데이터가 controller에 도착하기 전에string 데이터를date 형식으로 바꿀 수 있습니다
@Controller
public class UserController{
@RequestMapping(value="/login.do")
public String login(String username,Date birthday){
System.out.println("________");
return "";
}
// ,
@InitBinder
public void initBinder(WebDataBinder binder, WebRequest request) {
//
DateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, true));// CustomDateEditor
}
}
데이터 형식에 대한 전환을 부류로 추출할 수 있습니다
package com.cfcc.tsms.base.controller;
import com.cfcc.tsms.auth.persistence.dto.TsOrganization;
import com.cfcc.tsms.auth.persistence.dto.TsUser;
import com.cfcc.tsms.base.shiro.ShiroSessionUtils;
import com.cfcc.tsms.common.utils.DateUtils;
import org.apache.commons.lang3.StringEscapeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.annotation.InitBinder;
import java.beans.PropertyEditorSupport;
import java.sql.Timestamp;
import java.util.Date;
/**
* gezongyang
*/
public abstract class BaseController {
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@InitBinder
public void initBinder(WebDataBinder binder) {
// String , String HTML , XSS
binder.registerCustomEditor(String.class, new PropertyEditorSupport() {
@Override
public void setAsText(String text) {
setValue(text == null ? null : StringEscapeUtils.escapeHtml4(text.trim()));
}
@Override
public String getAsText() {
Object value = getValue();
return value != null ? value.toString() : "";
}
});
// Date
binder.registerCustomEditor(Date.class, new PropertyEditorSupport() {
@Override
public void setAsText(String text) {
setValue(DateUtils.parseDate(text));
}
});
// Timestamp
binder.registerCustomEditor(Timestamp.class, new PropertyEditorSupport() {
@Override
public void setAsText(String text) {
Date date = DateUtils.parseDate(text);
setValue(date == null ? null : new Timestamp(date.getTime()));
}
});
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.