Rag*_*dra 0 java servlets file-upload apache-commons-beanutils
我有一个HTML表单enctype="multipart/form-data"。我有一个dto它拥有所有类setter和getters。由于我要以多部分形式提交表单,getParameter()因此无法使用我使用Apache Commons BeanUtils来处理html表单字段的方法。我的servlet如下
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
}
Run Code Online (Sandbox Code Playgroud)
我的问题是我无法处理日期类型变量,这就是为什么我忽略在上面的代码和上面的代码中为某些html字段设置两个日期值,而值不是由Beans setProperty()方法设置的原因。谁能告诉我我哪里错了。。
BeanUtils类提供了接受字符串值的属性设置器方法,并将它们自动转换为适当的属性类型。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");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3985 次 |
| 最近记录: |