如何重定向形成控制器和JSP获得价值
问题描述:
http://localhost:8080/LACASServer/message.jsp?forgotUser=Mail+has+been+sent+to+your+mail+address
这里forgotUser是地图的关键,我在一个控制器的方法,它重定向到message.jsp设置,现在,我怎么使用这个地图信息.jap显示该地图的值。我使用JSTL库如何重定向形成控制器和JSP获得价值
CONTROLER方法为:
@RequestMapping(value = "/forgotPWD",params="username", method = RequestMethod.POST)
public String forgotPassword(@RequestParam(value = "username", required = false) String username,Map<String, Object> map) {
System.out.println("forgotPasswordUser"+username);
ResetPasswordLog resetPasswordLog;
User forgotPasswordUser = usersService.findUser(username);
map.put("forgotUser","Mail has been sent to your mail address");
if(forgotPasswordUser==null){
return "redirect:/login.jsp?login_error=1";
}
else
{
Integer uid=forgotPasswordUser.getId();
resetPasswordLog= usersService.setTempHash(uid);
String TEMPHASH= resetPasswordLog.getTempHash();
String url=Utility.serverURL+"forgot/index?uid="+uid+"&token="+TEMPHASH;
System.out.println(url);
System.out.println(Utility.mailResetSubject);
mailSender.sendMail(Utility.mailFrom,"[email protected]",Utility.mailResetSubject, url);
return "redirect:/message.jsp";
}
}
答
你需要你的控制器的方法(如上所示)来指定“视图”本身(而不是使用重定向,因为它目前如此) 。所以返回值应该是一个字符串,对应于message.jsp
的视图名称。然后,您可以将该地图添加到模型中,并且它将在JSP中可用。例如。
@RequestMapping(value = "/forgotPWD",params="username", method = RequestMethod.POST)
public String forgotPassword(@RequestParam(value = "username", required = false) String username,
Map<String, Object> map, Model model) {
[snip]
map.put("forgotUser","Mail has been sent to your mail address");
model.addAttribute("userMap", map);
[snip]
return "message.jsp"; // or just "message" depending on Spring settings
}
然后在你的JSP访问通过JSTL地图:$ {} userMap.forgotUser
感谢nickdos:U R右,但我只redirct使用。但我得到的解决方案为:在控制器中我使用返回“重定向:/message.jsp?消息= 1”;和在JSP作为 \t \t \t \t \t
Click here to login
\t \t –
Romi
即实际上是我的第一个建议,但后来我注意到你问:“我怎么能在message.jap中使用它的地图”...所以我试图专门回答这个问题 - $ {param.message}只是一个字符串值不是一个地图! – nickdos