Как установить значения типа даты с помощью Apache Commons BeanUtils,
У меня есть форма HTML с enctype="multipart/form-data"
, у меня есть dto
класс это все setter
а также getters
, Поскольку я отправляю форму как составную часть, getParameter()
метод не будет работать, для обработки полей формы HTML я использовал Apache Commons BeanUtils. Мой сервлет, как следует,
List<FileItem> items = (List<FileItem>) new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
if (item.isFormField()) {
// Process regular form field (input type="text|radio|checkbox|etc", select, etc).
String fieldname = item.getFieldName();
String fieldvalue = item.getString();
System.out.println(fieldname);
System.out.println(fieldvalue);
// ... (do your job here)
//getters and setters
try {if((!fieldname.equals("dob"))&&(!fieldname.equals("doj"))){
BeanUtils.setProperty(teacherInfo, fieldname, fieldvalue);}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
} else {
//Code for file upload
}
Моя проблема в том, что я не могу обработать переменные типа даты, поэтому я игнорирую установку двух значений даты в вышеприведенном коде и в вышеприведенном коде для некоторых полей html, значения не устанавливаются методом Beans setProperty(). Может кто-нибудь сказать мне, где я не прав.,
1 ответ
Класс BeanUtils предоставляет методы установки свойств, которые принимают значения String и автоматически преобразуют их в соответствующие типы свойств. Класс BeanUtils использует методы преобразования, определенные в классе ConvertUtils, для выполнения фактических преобразований, и эти методы также доступны для непосредственного использования.
Для дат DateConverter не поддерживает преобразование String в 'Date' по умолчанию, вам необходимо зарегистрировать экземпляр DateConverter, настроенный с шаблоном, подходящим для формата даты, который вы используете, например:
DateConverter converter = new DateConverter( null );
converter.setPattern("dd/mm/yyyy");
ConvertUtils.register(converter, Date.class);
BeanUtils.setProperty(obj, "date", "07/04/2014");