struts2从零开始(四)
知识点:1、文件上传
2、类型转换
1、文件上传:
1.1、 jsp页面代码:
<body> <form action="upload.action" method="post" enctype="multipart/form-data"> <input type="file" name="photo"> <input type="submit" value="上传"> </form> </body>
<package name="mypackage" extends="struts-default"> <action name="upload" name="code">package cn.zhuojingxinxi.web;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.apache.struts2.ServletActionContext;import com.opensymphony.xwork2.ActionSupport;public class UploadAction extends ActionSupport{private File photo;private String photoFileName;private String photoContentType;public File getPhoto() {return photo;}public void setPhoto(File photo) {this.photo = photo;}public String getPhotoFileName() {return photoFileName;}public void setPhotoFileName(String photoFileName) {this.photoFileName = photoFileName;}public String getPhotoContentType() {return photoContentType;}public void setPhotoContentType(String photoContentType) {this.photoContentType = photoContentType;}public String execute(){//System.out.println(photo.length());//System.out.println(photoFileName);//System.out.println(photoContentType);String path=ServletActionContext.getServletContext().getRealPath("/"); try {FileInputStream fis=new FileInputStream(photo);FileOutputStream fos=new FileOutputStream(path+photoFileName); byte[] b=new byte[512]; int length=-1; try {while((length=fis.read(b))!=-1){ fos.write(b, 0, length); fos.flush(); }fos.close();fis.close();} catch (IOException e) { e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}return null;}}package cn.zhuojingxinxi.util;import java.util.Map;import cn.zhuojingxinxi.entity.Point;import ognl.DefaultTypeConverter;public class PointConvert extends DefaultTypeConverter{@Overridepublic Object convertValue(Map context, Object value, Class toType) {if(toType==Point.class){ System.out.println("转入"); String[] str=(String[])value; String[] s=str[0].split(","); Point point=new Point(); point.setPointX(Integer.parseInt(s[0])); point.setPointY(Integer.parseInt(s[1])); return point;}else{System.out.println("转出");Point p=(Point)value; StringBuilder sb=new StringBuilder(); sb.append(p.getPointX()+","+p.getPointY()); return sb.toString();}}}package cn.zhuojingxinxi.util;import java.util.Map;import org.apache.struts2.util.StrutsTypeConverter;import cn.zhuojingxinxi.entity.Point;import ognl.DefaultTypeConverter;public class PointConvert2 extends StrutsTypeConverter{@Overridepublic Object convertFromString(Map arg0, String[] arg1, Class arg2) { String[] str=arg1; String [] s=str[0].split(","); Point point=new Point(); point.setPointX(Integer.parseInt(s[0])); point.setPointY(Integer.parseInt(s[1])); return point;}@Overridepublic String convertToString(Map arg0, Object arg1) { Point p=(Point)arg1; StringBuilder sb=new StringBuilder(); sb.append(p.getPointX()+","+p.getPointY()); return sb.toString();}} <action name="convert" name="code">package cn.zhuojingxinxi.web;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.apache.struts2.ServletActionContext;import cn.zhuojingxinxi.entity.Point;import com.opensymphony.xwork2.ActionSupport;public class ConvertAction extends ActionSupport{private Point point=null;public Point getPoint() {return point;}public void setPoint(Point point) {this.point = point;}public String execute(){System.out.println(point.getPointX()+"==========="+point.getPointY());return "success";}}