在我的弹簧控制器中,我有三个功能
@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(?
要回答的主要问题(其他都是背景信息,但请阅读(:
如何在方法中创建参数,以便它可以选择可以调用的方法=POST方法?
如何拥有多个方法=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";属性既然你已经用过了,我想我不应该解释它是如何工作的。