1

我知道有很多类似的帖子。但是我没有找到任何关于如何将 JFreeChart 显示到<img>标签的完整代码。

我正在显示页面的图像加载。

注意:此页面的 URL 是:

@RequestMapping( value = "/admin/student", method = RequestMethod.GET )

在同一页面上,我正在尝试使用不同的 URL 映射来加载图像。(如果这是可能的,我不知道,但我认为错误在哪里的 URL 映射)

<div class="chart-image">
    <img src="../admin/student/getChart.do" class="img-rounded" />
</div>

呈现图表的控制器是这样的:

@RequestMapping( value = "/{prePath:^tutor$|^admin$}/student/getChart", method = RequestMethod.GET )
public void displayChart( HttpServletResponse response )
{
    response.setContentType( "image/png" );
    try
    {
        JFreeChart chart = getChart();
        ChartUtilities.writeChartAsPNG( response.getOutputStream(), chart, 600, 400 );
        response.getOutputStream().close();
    }
    catch( IOException e )
    {
        // no logger yet
        e.printStackTrace();
    }
}

我从控制台收到这条消息:

警告:在名称为“ThesisProject”的 DispatcherServlet 中找不到具有 URI [/ThesisProject/admin/student/getChart.do] 的 HTTP 请求的映射

我不明白为什么我的<img>标签似乎没有看到假设呈现图表的控制器。

4

1 回答 1

0

您的 URL 中有.do扩展名,但您的 中没有@RequestMapping,因此请更改映射以包含它:

@RequestMapping( value = "/{prePath:^tutor$|^admin$}/student/getChart.do", method = RequestMethod.GET )

或者您总是可以.do从标签中的 URL 中删除扩展名<img>,但这取决于您如何映射 DispatcherServlet web.xml (即。*.do

于 2013-11-12T23:29:55.637 回答