0

这是在动作类中检索图像的代码。我试过了,但无法显示它我不知道图像处理。我应该如何在 JSP 中使用标签来显示图像?

public String displayImage()
  {
    Connection con = null;
    PreparedStatement preparedStatement = null;
    ResultSet resultSet = null;
    String sql,result="";
    con=JdbcHelper.getConnection();
    if(con!=null)
    {
      try
      {
        sql = "SELECT INPUT_FILE_BLOB FROM message_details where message_id=?";
        preparedStatement = con.prepareStatement(sql);
        preparedStatement.setString(1, messageid);
        resultSet = preparedStatement.executeQuery();
        if(resultSet.next())
        {
          Blob image = resultSet.getBlob("INPUT_FILE_BLOB");
          System.out.println("=============Image2\n" +image);
          int len1 = (int) image.length();
          System.out.println("=============len1\n" +len1);
          byte [] rb1 = new byte[len1];
          InputStream readImg1 = resultSet.getBinaryStream(1);
          try {
            int index1=readImg1.read(rb1, 0, len1);
            System.out.println("index1"+index1);
            response.reset();
            response.setContentType("image/jpg");
            response.getOutputStream().write(rb1,0,len1);
            response.getOutputStream().flush();
          } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
          }
        }
      }
      catch(SQLException e)
      {
        try
        {
          con.rollback();
        }
        catch (SQLException e1)
        {
          result = e1.getMessage();
          e.printStackTrace();
        }
        result = e.getMessage();
        e.printStackTrace();
      }
      finally
      {
        JdbcHelper.close(resultSet);
        JdbcHelper.close(preparedStatement);
        JdbcHelper.close(con);
      }
    }
    else
      result = Constants.SUCCESS;

  }
4

2 回答 2

0

从数据库中检索图像Blob或字节数组后,您将直接写入响应。在这种情况下,您不应该返回 SUCCESS 结果,您需要返回 NONE 结果。然后在 JSP 中,您可以使用img标签将图像作为单独的线程访问,该标签将调用您返回图像的操作。

另请参阅我们如何显示可以作为字节数组提供的动态或静态图像,以及如何在 Struts2 中显示图像

于 2013-08-01T18:35:48.830 回答
0

您应该通过实现自定义结果类型以在 JSP 上显示图像以 struts 2 方式来完成。

这是在 Stuts2 中显示动态图像的示例

Result它通过实现接口创建自定义结果类型。

public class CustomImageBytesResult implements Result {
.
.
.
}
于 2013-08-01T17:57:54.850 回答