您的位置:首页 > 编程语言 > Java开发

Spring MVC可使用的AbstractJpegView

2007-06-27 16:13 225 查看
这和AbstractExcelView,AbstractPdfView不同,此类是实现View接口,实现自定义的视图解析




package Action;




import java.awt.image.BufferedImage;


import java.util.Map;




import javax.servlet.ServletOutputStream;


import javax.servlet.http.HttpServletRequest;


import javax.servlet.http.HttpServletResponse;




import org.springframework.web.servlet.View;




import sun.awt.image.codec.JPEGImageEncoderImpl;




import com.sun.image.codec.jpeg.JPEGImageEncoder;






public abstract class AbstractJpegView implements View ...{






public String getContentType() ...{


// TODO 自动生成方法存根


return null;


}




public int getImageWidth()...{return 100;}




public int getImageHeght()...{return 100;}




protected int getImageType()...{


return BufferedImage.TYPE_INT_RGB;


}


public void render(Map map, HttpServletRequest request,




HttpServletResponse response) throws Exception ...{


response.setContentType("image/jpeg");//设置内容类型


BufferedImage image=new BufferedImage(this.getImageWidth(),this.getImageHeght(),this.getImageType());//缓存图像


buildImage(map,image,request,response);//绘制图像


//编码图像


ServletOutputStream out=response.getOutputStream();


JPEGImageEncoder encoder=new JPEGImageEncoderImpl(out);


encoder.encode(image);


out.flush();








}


protected abstract void buildImage(Map model,BufferedImage image,HttpServletRequest request,HttpServletResponse response) throws Exception;




}



我们只要继承这个类,实现buildImage方法,就可以输出人以jpeg图像了,下面是一个画圆的简单实现




package Action;




import java.awt.Graphics;


import java.awt.image.BufferedImage;


import java.util.Map;




import javax.servlet.http.HttpServletRequest;


import javax.servlet.http.HttpServletResponse;






public class CircleJpegView extends AbstractJpegView ...{







protected void buildImage(Map model, BufferedImage image,


HttpServletRequest request, HttpServletResponse response)




throws Exception ...{


//画圆


Graphics g=image.getGraphics();


g.drawOval(0,0, this.getImageWidth(), this.getImageHeght());




}









}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: