在Spring中显示图像的正确方法

时间:2013-11-12 23:27:21

标签: java image spring

将生成的图像显示到<img>标记的正确方法是什么?我尝试使用专门用于img的不同控制器

<div class="img">
    <img src="../resource/img/get_chart.do" class="img-rounded" />
</div>

它自己的页面的url映射是不同的。

但图像仍未显示。

@RequestMapping( value = "/resource/img/get_chart", method = RequestMethod.GET )
public void displayChart( HttpServletResponse response )
{
    response.setContentType( "image/png" );
    try
    {
        JFreeChart chart = createChart();
        ChartUtilities.writeChartAsPNG( response.getOutputStream(), chart, 700, 500 );
        response.getOutputStream().close();
    }
    catch( IOException e )
    {
        e.printStackTrace();
    }
}
  

警告:找不到带URI的HTTP请求的映射   [/Project/resource/img/get_chart.do]在DispatcherServlet中的名称   '项目'

我收到了这个。

更新:

<servlet>
   <servlet-name>Project</servlet-name>
   <servlet-class>
      org.springframework.web.servlet.DispatcherServlet
   </servlet-class>
   <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
   <servlet-name>Project</servlet-name>
   <url-pattern>*.do</url-pattern>
</servlet-mapping>

2 个答案:

答案 0 :(得分:0)

您的RequestMapping不正确。将其更改为

  

/resource/img/get_chart.do

答案 1 :(得分:0)

最后我发现了我的错误。加载<img>标记所在页面和图像src的映射不应该在不同的类中。

我的错误是我为@RequestMapping( value = "/resource/img/get_chart", method = RequestMethod.GET )创建了一个单独的类。此映射也应该沿着第一页加载的控制器放置。这解决了我的问题。