public class SalesCountServlet extends HttpServlet { @Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
System.out.println("ok");
CategoryDataset dataset = getDataSet();
String fileName = "G:/product.jpg"; JFreeChart chart = ChartFactory.createBarChart3D("产品销量图", // 图表标题
"产品", // 目录轴的显示标签
"销量", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
); FileOutputStream fos_jpg = null;
try { fos_jpg = new FileOutputStream(fileName); ChartUtilities.writeChartAsJPEG(fos_jpg, 0.5f, chart, 400, 300,
null);
} finally {
try {
fos_jpg.close();
} catch (Exception e) {
e.printStackTrace();
}
} request.setAttribute("imgName", fileName);
this.getServletContext().getRequestDispatcher("/admin/SalesCount.jsp")
.forward(request, response); } private CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
List<ProductStatItem> items = ProductStatItem.getProductsBySaleCount();
for (int i = 0; i < items.size(); i++) {
ProductStatItem p = items.get(i);
// Product pro=Product.findProduct(p.getProductId());
System.out.print(p.getProductName());
dataset.addValue(p.getTotalSalesCount(), "销量", p.getProductName());
}
return dataset;
}}
生成的图里x轴的名称不能正常显示,显示为...如果正常显示的话应该是:冰箱,洗衣机等,为什么p.getProductName()显示不出来,控制台打印输出是正常的.请问怎么解决?