一个通过点击书名超链接后在表格固定位置显示图片
我通过在表格位置插入jsp语句来显示
出现Unable to compile class for JSP
The method append(Object) in the type StringBuffer is not applicable for the arguments (void)
<%@page language="java" contentType="text/html;charset=gb2312"%>
<%@ include file="Connections/mysqltest.jsp" %>
<%@page import="java.sql.*" %>
<%@page import="java.io.*" %>
<%@page import="java.util.*" %>
<%
StringBuffer jspimage=new StringBuffer();
String id=request.getParameter("id");
int id=Integer.parseInt(temp);
String sql = "select picture from book where id ="+id;     
Statement stmt=Connrsbookdet.createStatement(); //数据源Connrsbookdet
ResultSet rs=stmt.executeQuery(sql);    
InputStream in=null;
response.reset();     
response.setContentType("image/jpeg");   //返回文件类型  
ServletOutputStream sout=response.getOutputStream();
try {       
if(rs.next())
{     
      in=rs.getBinaryStream("picture"); 
         byte image[]=new byte[1024];
          while(in.read(image)!=-1)
        {
           jspimage.append(sout.write(image));
//sout.write(image);
        } 
         sout.flush();
      sout.close();
         rs.close();
         stmt.close();

}catch (Exception e){
sout.println("图片不能显示.<br>");
sout.println("Error : " + e.toString());
}
%>
<html>
<head>
</head>
<body>
<form action="userlist.jsp" method="post">
   <tr>
      <td>图片:</td>
      <td><%=jspimage%></td>
    </tr>
  </table>
</form></body>
</html>

解决方案 »

  1.   

    我将StringBuffer jspimage=new StringBuffer();
    和jspimage.append(sout.write(image));改成sout.write(image);
    直接输出就能显示
    请问怎样在jsp中任意位置插入jsp语句
      

  2.   

    table复制时丢了
    不是主要的
      

  3.   

    我猜主要的错误在这里
    jspimage.append(sout.write(image));
    sout.write(image)获取为空....
      

  4.   

    jspimage.append(sout.write(image)); 
    提示不是很清楚了吗,参数需要Object类型的参数,你sout.write(...)是返回空的,当然会出错
      

  5.   

    image.jsp<%@page language="java" contentType="text/html;charset=gb2312"%>
    <%@ include file="Connections/mysqltest.jsp" %>
    <%@page import="java.sql.*" %>
    <%@page import="java.io.*" %>
    <%@page import="java.util.*" %>
    <%
    StringBuffer jspimage=new StringBuffer();
    String id=request.getParameter("id");
    int id=Integer.parseInt(temp);
    String sql = "select picture from book where id ="+id;     
    Statement stmt=Connrsbookdet.createStatement();    //数据源Connrsbookdet
    ResultSet rs=stmt.executeQuery(sql);    
    InputStream in=null;
    response.reset();     
    response.setContentType("image/jpeg");   //返回文件类型  
    ServletOutputStream sout=response.getOutputStream();
    try {                  
            if(rs.next())
            {     
                 in=rs.getBinaryStream("picture"); 
                byte image[]=new byte[1024];
                    while(in.read(image)!=-1)
                   {
                      jspimage.append(sout.write(image));
                    //sout.write(image);
                   } 
                sout.flush();
                 sout.close();
                rs.close();
                stmt.close();
            } 
        }catch (Exception e){
            sout.println("图片不能显示.<br>");
            sout.println("Error : " + e.toString());
        }
    %>show.jsp  <table>
       <tr>
          <td>图片:</td>
          <td><img src="image.jsp?id=i"></td>
        </tr>
      </table>
      

  6.   

    <table>
       <tr>
          <td>图片:</td>
          <td><img src="image.jsp?id=i"></td>
        </tr>
      </table>
    我用src="image.jsp?id=i现实为打叉
    试过用连接servlet也一样
    正确设置什么?
      

  7.   

                      jspimage.append(sout.write(image));
                    //sout.write(image);
    -------->sout.write(image)试试。