我有这个控制器:
@RequestMapping(value = "*.xls", method = RequestMethod.GET)
public String excel(Model model) {
return "excel";
excel wiew实际上打开了一个ExcelViewer,它是用方法构建的
protected void buildExcelDocument(Map<String, Object> map, WritableWorkbook ww, HttpServletRequest hsr, HttpServletResponse hsr1) throws Exception {
Class.writecontent
Class.writeMoreContent
被调用的方法将内容写入Excel工作表,他们可以抛出例如biffException。如何在发生异常时显示某个错误页面?
我试过这个
@Controller
public class ExcelController
{
@ExceptionHandler(BiffException.class)
public String handleException(BiffException ex) {
return "fail";
}
@RequestMapping(value = "*.xls", method = RequestMethod.GET)
public String excel(Model model) {
return "excel";
}
}
但是我收到有关例外的服务器错误消息。也许缺少一个bean定义?
答案 0 :(得分:2)
@ExceptionHandler
- 带注释的方法只处理同一个类中处理程序方法抛出的异常。另一方面,您的异常是从View
的{{1}}方法中抛出的,此时它离开了控制器/处理程序层。
在Spring中处理异常不能很好地处理视图层中的异常,主要是因为使用servlet API很难让它可靠地工作,所以我建议你创建一个render
的子类并处理异常在那里。