如何使用spring在java中单击submit按钮后才能转到下一页
我只需要在单击提交按钮后重定向到页面,而不是直接在地址栏中键入url。如果直接在地址栏中键入,则应显示主页 Iam使用session.getAttribute执行上述过程。我在想,如果有任何替代方法,因为我需要为每个post方法都这样做 下面的方法用于第一页,我在其中创建了一个会话属性,该属性将在下一页中使用如何使用spring在java中单击submit按钮后才能转到下一页,java,spring,spring-mvc,Java,Spring,Spring Mvc,我只需要在单击提交按钮后重定向到页面,而不是直接在地址栏中键入url。如果直接在地址栏中键入,则应显示主页 Iam使用session.getAttribute执行上述过程。我在想,如果有任何替代方法,因为我需要为每个post方法都这样做 下面的方法用于第一页,我在其中创建了一个会话属性,该属性将在下一页中使用 @RequestMapping(value = "/payment", method = RequestMethod.POST) public String submitForPayme
@RequestMapping(value = "/payment", method = RequestMethod.POST)
public String submitForPayment(@ModelAttribute("deposit") Deposit deposit, ModelMap model, HttpServletRequest request) throws IOException
{
try {
HttpSession sessionForNextPage = request.getSession(true);
sessionForNextPage.setAttribute("vNumber",
deposit.getValidityNumber());
return "redirect:success";
} catch (NullPointerException exception) {
return "redirect:payment";
}
}
下面的方法用于使用上面声明的会话的下一页
@RequestMapping(value = "/success", method = RequestMethod.GET)
public String showSuccess(ModelMap model, HttpServletRequest request)
{
try {
view = "success";
HttpSession session = request.getSession(false);
int vNumber = (int) session.getAttribute("vNumber");
System.out.println(vNumber);
if (vNumber != 0) {
request.getSession(false).removeAttribute("vNumber");
return view;
}
else
return "pay";
} catch (Exception e) {
return "redirect:pay";
}
}
有没有其他方法可以做到这一点,因为我必须对所有的方法都这样做…每当我必须做post提交时,我总是使用一个中间页面来捕获POST数据,并将数据存储在数据库中,将记录键存储在会话中,并将其重定向到显示页面,在该页面中,我检查记录id(如果有),然后从DB检索数据,如果没有显示错误消息,则显示数据 因此,即使有人直接访问您的显示页面(键入url),它也会显示一条错误消息,在大多数情况下,人们不会看到中间页面url,但即使他们看到了,您也可以对html表单使用随机标记,并存储在会话中,并在中间页面上验证它
希望这将对您有所帮助。使用拦截器并在拦截器方法中确定引用者url。 为需要拦截的每个操作或某些操作调用拦截器
public class AppInterceptor extends HandlerInterceptorAdapter{
//before the actual handler will be executed
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
return true;
}
//after the handler is executed
public void postHandle(HttpServletRequest request, HttpServletResponse response,
Object handler, ModelAndView modelAndView) throws Exception {
String referrer = request.getHeader("referer");
// if the referrer string is null, it means the url is invoked by typing into address bad and then you can decide of redirecting user to home page.
}
}
这会奏效的