//接口
  public InputStream loadInvoiceRider(String INVOICE_ID_);
  //实现层
    @Override
    public InputStream loadInvoiceRider(String INVOICE_ID_) {
        String sql = "select RIDER_ from MP_INVOICE where INVOICE_ID_ = ?";
        return mpJdbcTemplate.queryForObject(sql, new Object[] { INVOICE_ID_ }, new RowMapper<InputStream>() {
            public InputStream mapRow(ResultSet rs, int rowNum) throws SQLException {
                return rs.getBinaryStream(1);
            }
        });
    }
   //控制层
    @RequestMapping(value = "loadInvoiceRider")
    public void loadInvoiceRider(String INVOICE_ID_, HttpServletRequest request, HttpServletResponse response, HttpSession session) {
        Map<String, Object> result = new HashMap<String, Object>();
        try {
            getOperator(request, session);
            InputStream inputStream = invoiceService.loadInvoiceRider(INVOICE_ID_);
            response.reset();
            ServletOutputStream out = response.getOutputStream();
            byte[] content = new byte[65535];
            int length = 0;
            if (inputStream != null) {
                while ((length = inputStream.read(content)) != -1) {
                    out.write(content, 0, length);
                }
            }
            out.flush();
            out.close();
            log("admin", "InvoiceController.loadInvoiceRider", INVOICE_ID_, "0", null, request, session);
        }
        catch (Exception e) {
            logger.error(e.getMessage(), e);
            result.put("message", getErrorMessage(e, request));
            result.put("success", false);
            StringWriter stringWriter = new StringWriter();
            e.printStackTrace(new PrintWriter(stringWriter));
            log("admin", "InvoiceController.loadInvoiceRider", INVOICE_ID_, "1", stringWriter.toString(), request, session);
        }
    }
前台直接把请求地址,放在图片的src位置
{
                xtype : ‘actioncolumn‘,
                width : 280,
                dataIndex : ‘INVOICE_ID_‘,
                text : ‘<spring:message code="INVOICE" />‘,
                align : ‘center‘,
                renderer : function(value, metaData, record) {
                    var id = metaData.record.id;
                    Ext.defer(function() {
                        Ext.create(‘Ext.Img‘, {
                            height : 140,
                            width : 250,
                            src : ‘loadInvoiceRider.do?INVOICE_ID_=‘ + value,
                            renderTo : id,
                            listeners : {
                                scope : this,
                                el : {
                                    dblclick : function(e, a) {
                                        var winViewImage = Ext.create(‘Ext.Window‘, {
                                            width : 750,
                                            height : 500,
                                            maximizable : true,//窗体最大化按钮
                                            title : ‘<spring:message code="image" />‘,
                                            layout : "fit", //窗口布局类型  
                                            modal : true, //是否模态窗口,默认为false  
                                            resizable : false,//调整窗体大小
                                            closeAction : ‘hide‘, //关闭窗体实际上是隐藏窗体并未关闭销毁此窗体对象(节约资源)
                                            plain : true,//窗体主体部分背景颜色透明
                                            draggable : true,//充许拖动窗体
                                            border : false,
                                            items : [ Ext.create(‘Ext.Img‘, {
                                                width : 750,
                                                height : 500,
                                                src : ‘loadInvoiceRider.do?INVOICE_ID_=‘ + value
                                            }) ]
                                        });
                                        winViewImage.show();
                                    }
                                }
                            }
                        })
                    }, 50);
                    return Ext.String.format(‘<div id="{0}"></div>‘, id);
                }
            },