0

これは1か月前に機能しましたが、コードをリロードしても機能しません。これが私のストラットスニップです

    <action name="checkManager" class="CheckAction">
        <result>/pages/check_manager.jsp</result>
    </action>

    <action name="submitFile" class="SubmitFileAction">
        <result name="success">/pages/submit_file.jsp</result>
        <result name="error">/pages/check_manager.jsp</result>
    </action>

というわけで、最初のページはcheckManager. submitFileアクションを呼び出すボタンがあります。それが起動すると、パスワードがチェックされ、失敗するとアクションクラスがエラー結果を送信します。1 か月前、上記の結果エラーにより、最初check_manager.jspに読み込まれたデータとエラー メッセージが表示された元のページにユーザーがリダイレクトされました。現在、ユーザーを未加工のcheck_manager.jspページにリダイレクトしています。データがありません。サーブレットが起動せず、空白の jsp ページをレンダリングするだけです。ソース履歴を確認しましたが、このアプリケーションでは何も変更されていません。

なぜこれが機能しなくなるのかわかりません。誰か私にアイデアを教えてもらえますか? 約 1 時間半でこれをクライアントに提示しなければならないので、本当にここで立ち往生しています。

注、エラーをこれに変更してみました

<result name="error" type="redirectAction">checkManager</result>

データを取り戻しましたが、エラーメッセージが表示されなくなりました。これは良いことではありません。うーん、何かアイデアはありますか?

if (enteredHash.equals(storedHash)) {
            _log.debug("The password matched");
            UserSession<User> userSession = (UserSession<User>) session
                    .get("user");
            #do logic#
        } else {
            _log.debug("The password didn't match");
            addActionError("The password you entered was incorrect, nothing was sent to the bank.");
            return ActionSupport.ERROR;
        }
        return ActionSupport.SUCCESS;

私のjsp

<s:if test="hasActionErrors()">
            <div class="errors">
            <s:actionerror/>
            </div><br>
        </s:if>

繰り返しますが、これは1か月前に完全に機能しました。私がしたことは、そのままのブランチをチェックアウトして展開することだけでした。今はうまくいきません。

4

1 に答える 1

1

簡単な修正は、これをに追加することgetCheckListですCheckAction

public Collection<Check> getCheckList() { 
   ActionContext.getContext().getSession().put("checkList", checkList);
   return checkList; 
}

これをに追加しますSubmitFileAction

public Collection<Check> getCheckList() { 
   return (Collection<Check>) ActionContext.getContext().getSession().get("checkList"); 
}

これは良い恒久的な解決策ではありませんが、危機に瀕する必要がある場所に到達するはずです!

于 2012-07-10T12:53:48.657 に答える