具有多个方法=RequestMethod.控制器中的POST,以及如何调用它们中的每一个



在我的弹簧控制器中,我有三个功能

@Controller
public class Controll {
@RequestMapping(value="/signup",method=RequestMethod.GET)
public String signup(@ModelAttribute("signuper") Signuper signuper, ModelMap model){
if(signuper.getSignupFName()!=null){  
//dosomething
return "emailForm";              
}

//dosomething
return "signupForm";
}
@RequestMapping(value="/signup",method=RequestMethod.POST)
public String signup(@Valid Signuper signuper,BindingResult result, ModelMap model,
RedirectAttributes attributes)
{
//dosomething
attributes.addFlashAttribute("signuper",signuper);
return "redirect:signup";
}
@RequestMapping(value="/signup",method=RequestMethod.POST, params = "email")
public String signupE(@Valid EmailVerify emailVerify,BindingResult result,ModelMap model) {
//dosomething
return "signupSuccess";
}
}

用户转到/在web浏览器中注册。方法(使用方法=GET注册(被调用。用户填写";signupForm";并且信息进入Method(使用Method=POST注册(。方法(使用方法=POST注册(进行验证,如果一切正常,它会重定向回带有Signuper信息的方法(用方法=GET注册(。由于signuper.getSignupFName((现在不会为空,用户将不得不填写";emailForm";。

如何转到方法(方法=POST的signupE(?

要回答的主要问题(其他都是背景信息,但请阅读(:

  1. 如何在方法中创建参数,以便它可以选择可以调用的方法=POST方法?

  2. 如何拥有多个方法=RequestMethod。控制器中的POST,以及如何调用它们中的每一个?

1。如何在方法中创建一个param,以便它可以选择可以调用的方法=POST方法

我想你想在用户填写"之后调用方法signupE;emailForm";。因此,在";emailForm";,形式";动作";URL必须附加一个请求参数。如何做到这一点取决于您使用了什么服务器端技术来生成HTML页面。它可以是JSP/Thymelaf等。如果您需要帮助,请指定您使用的是哪一个。

我可以看出,您已经指定了params="电子邮件">,但您尚未在方法参数中指定任何@RequestParam("电子邮件"(。应指定如下:

@RequestMapping(value="/signup",method=RequestMethod.POST, params = "email")
public String signupE(@RequestParam("email") String email, @Valid EmailVerify emailVerify,BindingResult result,ModelMap model) {
//dosomething
return "signupSuccess";
}

2.如何拥有多个方法=RequestMethod。控制器中的POST,以及如何调用它们中的每一个

实现这一点的方法之一是通过基于请求参数来区分它们;params";属性既然你已经用过了,我想我不应该解释它是如何工作的。

相关内容

  • 没有找到相关文章

最新更新