0

Spring コントローラーといくつかの通常のサーブレットを組み合わせたポータルがあります。

この画面では、ユーザーはリストからクレジット カードを選択し、そのカードの取引のレポートを表示します。追加のセキュリティ対策として、クライアントへのリクエストでクレジットカードを送信しないようにするため、クレジットカード番号のリストをマスクしてユーザーに送信し、ユーザーから送信されたリクエストで、使用するレコードIDを受け取ります照会しているクレジット カードを特定します。

コントローラー ( ReportController ) には、この入力を処理し、レポートの処理を担当するサーブレット ( ReportServlet ) を (ローカルで) 呼び出すメソッドがあります。処理中にエラーが発生した場合は、モデルパラメータ「error」を使用して画面に返す必要があります。この最後の部分は機能していません。

ReportServletにエラーがある場合、画面に返されません。転送行にコメントすると(そしてエラーを強制すると)機能しますが、転送を行った後は機能しません。私が間違っていることは何ですか?

コードは次のとおりです。

ReportController

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;}
4

1 に答える 1