如何重定向表单控制器并在jsp中获取值
这里forgotUser是一个映射的键,我在控制器的方法中设置了它,它重定向到message.jsp,现在我如何在message.jap中使用这个映射来显示该映射的值。我正在使用jstl库 控制器方法如下:如何重定向表单控制器并在jsp中获取值,jsp,spring-mvc,jstl,Jsp,Spring Mvc,Jstl,这里forgotUser是一个映射的键,我在控制器的方法中设置了它,它重定向到message.jsp,现在我如何在message.jap中使用这个映射来显示该映射的值。我正在使用jstl库 控制器方法如下: http://localhost:8080/LACASServer/message.jsp?forgotUser=Mail+has+been+sent+to+your+mail+address @RequestMapping(value=“/forgotPWD”,params=“usern
http://localhost:8080/LACASServer/message.jsp?forgotUser=Mail+has+been+sent+to+your+mail+address
@RequestMapping(value=“/forgotPWD”,params=“username”,method=RequestMethod.POST)
公共字符串forgotPassword(@RequestParam(value=“username”,required=false)字符串用户名,映射){
System.out.println(“forgotPasswordUser”+用户名);
ResetPasswordLog ResetPasswordLog;
User forgotPasswordUser=usersService.findUser(用户名);
map.put(“forgotUser”,“邮件已发送到您的邮件地址”);
if(forgotPasswordUser==null){
返回“重定向:/login.jsp?login\u error=1”;
}
其他的
{
整数uid=forgotPasswordUser.getId();
resetPasswordLog=usersService.SetTemplash(uid);
字符串TEMPHASH=resetPasswordLog.getEmphasish();
字符串url=Utility.serverURL+“忘记/索引?uid=“+uid+”&token=“+TEMPHASH;
System.out.println(url);
System.out.println(Utility.mailResetSubject);
mailSender.sendMail(实用程序.mailFrom,“romijain3186@gmail.com,Utility.mailResetSubject,url);
返回“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) {
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,"romijain3186@gmail.com",Utility.mailResetSubject, url);
return "redirect:/message.jsp";
}
}
@RequestMapping(value=“/forgotPWD”,params=“username”,method=RequestMethod.POST)
公共字符串forgotPassword(@RequestParam(value=“username”,required=false)字符串用户名,
地图(地图、模型){
[剪报]
map.put(“forgotUser”,“邮件已发送到您的邮件地址”);
addAttribute(“userMap”,map);
[剪报]
返回“message.jsp”;//或仅返回“message”,具体取决于Spring设置
}
然后,在JSP中,通过JSTL:${userMap.forgotUser}访问映射,谢谢nickdos:U,对了,但我只需要使用redirct。但我得到的解决方案是:在控制器中,我使用返回“redirect:/message.jsp?message=1”;在jsp as
@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
}