我的控制器中有一个updateNewPassword()
,它是第一次从请求中获取hString
的,当第二次被调用时,我需要再次访问hString
,因此请将其添加到ModelAndView
对象mav之前,返回语句如下,但是在第二次调用updateNewPassword()
时,将hString
设置为null。有人可以帮我解决这个问题吗?
我正在使用Spring MVC 4和JDK 7
@RequestMapping(method = { RequestMethod.GET, RequestMethod.POST })
public ModelAndView updateNewPassword(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
getCurrentRequestProperties().put(CurrentRequestProperties.IS_VALID_REQUEST, true);
ModelAndView mav = new ModelAndView();
String hString = request.getParameter("hString");
String newPassword = request.getParameter("newPassword");
String confirmPassword = request.getParameter("confirmPassword");
if (StringUtils.isNotEmpty(newPassword) || StringUtils.isNotEmpty(confirmPassword))
{
UserSecurityQuestions qRecord = api.search.query(UserSecurityQuestions.class,
api.search.property("hashString").eq(hString)).first();
if (qRecord != null && !qRecord.isValidRequest())
{
mav.addObject("failedMessage", "forgot.url.expired");
}
else
{
// updates the password
}
} else {
mav.addObject("hString", hString);
mav.addObject("notimeout", true);
}
return mav;
}
最佳答案
需要再次访问hString,所以要将其添加到ModelAndView对象
在返回语句之前的mav如下,但在第二次调用
updateNewPassword()正在将hString设置为null。
当您将其添加到模型中时。只有在当前request
有效之前(即),直到渲染视图之前,它才可用。
因此它返回了null
。如果希望变量在进一步的请求中可用,则可以将其存储在session
中。