java使用BeanUtils封装file类型表单数据到一个对象中

java

package com.cc.web.servlet;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import org.apache.commons.beanutils.BeanUtils;

import org.apache.commons.fileupload.FileItem;

import org.apache.commons.fileupload.disk.DiskFileItemFactory;

import org.apache.commons.fileupload.servlet.ServletFileUpload;

import org.apache.commons.io.IOUtils;

import com.cc.domain.Category;

import com.cc.domain.Product;

import com.cc.utils.CommonsUtils;

import com.cc.web.service.AdminService;

public class AdminProductServlet extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

Product product=new Product();

//收集数据的容器

Map<String, Object> map=new HashMap<String, Object>();

try {

//目的:收集表单的数据并封装成实体Product 将上传图片存到服务器磁盘上

//创建磁盘文件项工厂

DiskFileItemFactory factory=new DiskFileItemFactory();

//创建文件上传的核心对象

ServletFileUpload upload=new ServletFileUpload(factory);

//解析request获得文件项对象集合

List<FileItem> parseRequest = upload.parseRequest(request);

for (FileItem item : parseRequest) {

//判断是否是普通表单项

boolean formField = item.isFormField();

if(formField){

//普通表单项获得数据 封装到Product实体中

String fieldName = item.getFieldName();

String fieldVlue=item.getString("UTF-8");
            //放进map里可以自动封装数据

map.put(fieldName, fieldVlue);

}else{

//文件上传项获得文件的名称,获得文件的内容

String filename=item.getName();

String path=this.getServletContext().getRealPath("upload");

InputStream in=item.getInputStream();

OutputStream out=new FileOutputStream(path+"/"+filename);

IOUtils.copy(in, out);

in.close();

out.close();

item.delete();

map.put("pinmage", "/"+filename);

}

}

BeanUtils.populate(product, map);

//是否product对象封装数据完全,表单不具备的需要手动封装

//private String pid;

product.setPid(CommonsUtils.getUUID());

//private Date pdate

SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");

Date date=new Date();

String format2 = format.format(date);

Date pdate=format.parse(format2);

product.setPdate(pdate);

//private int pflag;

product.setPflag(0);

//private Category category;

Category category=new Category();

category.setCid(map.get("cid").toString());

product.setCategory(category);

//将Product传递给service层

AdminService service =new AdminService();

service.saveProduct(product);

} catch (Exception e) {

e.printStackTrace();

}

}

public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);

}

}

以上是 java使用BeanUtils封装file类型表单数据到一个对象中 的全部内容, 来源链接: utcz.com/z/392804.html

回到顶部