16

Spring MVC を使用しています。リクエストまたは他のオブジェクトに属性を追加する必要があります。画面に表示されるメッセージです。たとえば、純粋なサーブレットを使用する場合は、次のようにするだけです。

request.setAttribute("message", "User deleted");

そしてJSPページより

<div id="message">${message}</div>

しかし、メソッドで次のようなことをしようとすると:

@RequestMapping(value = "/delete", method = RequestMethod.GET)
public String deleteUser(@RequestParam("login") String login,
        ModelMap map, HttpServletRequest request)

モデル オブジェクト -

model.addAttribute("message", "User deleted");

地図 -

map.put("message", "User deleted");

モデルマップ -

map.put("message", "User deleted");

HttpServletRequest -

request.setAttribute("message", "User deleted");

何も表示されません。しかし、私のブラウザには次のように表示されます: http:// localhost : 8081 /project/index?message=User+deleted

この小さな問題を解決するにはどうすればよいですか?回答ありがとうございます

更新しました:

明確な理解のために、私はこれをやろうとしています:

 @RequestMapping(value = "/delete", method = RequestMethod.GET)
public String deleteUser(@RequestParam("login") String login,
        Model model) {
    dao.delete(login); // there is NO exeptions
    map.addAttribute("message", "User " + login + " deleted");
    return "redirect:" + "index";
}

私のJSPでは、ユーザーログインも次のように表示します。

${user.login}

セッションからユーザーを取得し、ログインしていることがわかります

4

3 に答える 3

0

間違った方法でリダイレクトしています。return "redirect:"+"index" の代わりに return "redirect:/index" を使用してください。get メソッドにリダイレクトします。redirectattributes は post/redirect/get 属性であるためです。これを試すと、画面にフラッシュ メッセージが表示されます。モデルの代わりにリダイレクト属性を使用します。

redirectAttributes.addFlashAttribute("errormsg", "errormessage"); return "redirect:/index.do";

于 2014-09-26T12:05:11.003 に答える