0

私はSpring-MVCベースのアプリケーションに取り組んでおり、プロセスで何か問題が発生した場合にエンドユーザーにエラーメッセージを表示する必要があります.hereは私がやっているコードです

GlobalMessages.addErrorMessage(model, "facebook.user.accessDenied");
return REDIRECT_PREFIX + "http://localhost:8080/storefront";

UI でタグを使用してエラー メッセージを表示していますが、リダイレクトを使用してエラー メッセージを削除しているようです。私はSpring-MVCが初めてで、それが正しいか間違っているかわかりません。

私が気付いた奇妙なことの1つは、URLをリダイレクトしている間に変更が加えられていることです

http://localhost:9001/storefront/?errorKey=facebook.user.accessDenied

これは addErrorMessage 関数の残りの部分です

public static void addErrorMessage(final Model model, final String messageKey)
    {
        addMessage(model, ERROR_MESSAGES_HOLDER, messageKey);
    }

protected static void addMessage(final Model model, final String messageHolder, final String messageKey)
    {
        if (model.containsAttribute(messageHolder))
        {
            final Map<String, Object> modelMap = model.asMap();
            final List<String> messageKeys = new ArrayList<String>((List<String>) modelMap.get(messageHolder));
            messageKeys.add(messageKey);
            model.addAttribute(messageHolder, messageKeys);
        }
        else
        {
            model.addAttribute(messageHolder, Collections.singletonList(messageKey));
        }
    }
4

1 に答える 1

0

ここで何を達成しようとしているのか正確に理解できません。しかし、コントローラーレベルで検証が行われた後にエラーメッセージを表示しようとしていると思いますが、同じフォームを再度表示したいのですが、エラーメッセージが表示されます。

REDIRECT_PREFIX変数と混同しています。その価値は何ですか?? 「redirect:」を値として使用している場合、それが問題です。他のビューにリダイレクトすると、モデル プロパティに添付したエラー メッセージがフォームに表示されません。フォームが表示されるビュー名を指定するだけで、Spring はモデル プロパティにバインドされたエラーを自動的に表示します。

これがお役に立てば幸いです。乾杯。

于 2012-05-31T09:34:42.597 に答える