我有一个将 Spring 控制器与几个常规 servlet 组合在一起的 Portal。
在屏幕中,用户有一个列表,他/她从该列表中选择一张信用卡,以便查看该卡的交易报告。作为一项额外的安全措施,我避免在任何请求中向客户发送信用卡,因此我有一个隐藏的信用卡号码列表,我发送给用户,并且在用户发送的请求中,我收到了我使用的记录 ID以确定正在查询的信用卡。
在控制器(ReportController)中,我有一个方法来处理此输入并(本地)调用负责处理报告的 servlet(ReportServlet)。如果处理中有任何错误,它应该使用模型参数“ error ”将其返回到屏幕。最后一部分不起作用。
如果ReportServlet中有错误,则不会将其返回到屏幕。如果我评论转发线(并强制出错)它可以工作,但在转发之后它不会。我做错了什么?
这是代码:
报告控制器
try {
...
if (cardholders == null || cardholders.size() < 2 || id <= 0) {
model.put("error","there's an error");
return CARDTRANSACTIONS_PATH;
} else {
...
HttpUpdatetableRequestWrapper customRequest = new HttpUpdatetableRequestWrapper(request);
customRequest.setParameter("cardnumber", cardholder.getCardnumber());
request.getRequestDispatcher(config.getProperty("reportservlet")).forward((HttpServletRequest) customRequest, response);
String error = (String) session.getAttribute("error");
if(!(error == null || "".equals(error))){
throw new RuntimeException(error);
}
}
} catch (Exception ex) {
model.put("error", "there's an error");
} finally{ return CARDTRANSACTIONS_PATH;}