当前位置: 首页 > 面试题库 >

POST后重定向(即使有验证错误)

巫马泰
2023-03-14
问题内容

我试图弄清楚如何“保留” BindingResult,以便可以通过Spring <form:errors>标记在随后的GET中使用它。我要这样做的原因是由于Google App Engine的SSL限制。我有一个通过HTTP显示的表单,该帖子发布到HTTPS URL。如果我仅转发而不是重定向,则用户将看到https://whatever.appspot.com/my/form URL。我正在努力避免这种情况。任何想法如何解决这个问题?

以下是我要执行的操作,但是使用时我只会看到验证错误return "create"

@RequestMapping(value = "/submit", method = RequestMethod.POST)
public final String submit(
    @ModelAttribute("register") @Valid final Register register,
    final BindingResult binding) {

    if (binding.hasErrors()) {
        return "redirect:/register/create";
    }

    return "redirect:/register/success";
}

问题答案:

从Spring 3.1开始,你可以使用RedirectAttributes。在执行重定向之前,添加你希望具有的属性。添加BindingResult和用于验证的对象,在本例中为Register。

对于BindingResult,你将使用名称:“ org.springframework.validation.BindingResult。[ModelAttribute的名称]”。

对于用于验证的对象,将使用ModelAttribute的名称。

要使用RedirectAttributes,你必须将此添加到配置文件中。你还告诉Spring使用一些较新的类:

<mvc:annotation-driven />

现在,无论你将重定向到哪里,都将显示错误

@RequestMapping(value = "/submit", method = RequestMethod.POST)
public final String submit(@ModelAttribute("register") @Valid final Register register, final BindingResult binding, RedirectAttributes attr, HttpSession session) {

if (binding.hasErrors()) {
    attr.addFlashAttribute("org.springframework.validation.BindingResult.register", binding);
    attr.addFlashAttribute("register", register);
    return "redirect:/register/create";
}

return "redirect:/register/success";
}


 类似资料:
  • 是否可以将用户重定向到Laravel中的POST路由。我有两张表格。表格一发送到包含表格二的路线,表格二发送到最终路线,然后进行验证。如果

  • 我正在对我的Laravel控制器进行简单验证: 我的问题是,如果失败,这个验证会将我重定向到主,我通过AJAX发出请求,我知道Laravel会检测到通过Ajax发出的请求,但它只有在正常请求(我发送的典型请求标题与内容类型应用程序/json和正文中我发送了一个正常的JSON 但是Laravel无法检测到当te Ajax请求不是时,我使用的是JavaScript的对象,因此,我没有发送标题,而是在正

  • 当有人试图访问需要身份验证的页面时,会重定向到登录页面。如何在成功登录后将它们重定向到所需页面,而不是默认链接?

  • 我正在通过 django 表单向我的 Django Rest Framework API 提交一个 POST 请求。 下面是我的表单的一个片段: < code>views.py: 我正在进行一次成功的POST(项目是在数据库中创建的),但是一旦保存,我就会转到url,它显示了我的api w/Markdown。我想让它返回到特定的url。 有没有办法自定义成功后重定向到的位置? 添加序列化器:

  • 我想重定向我当前的活动到另一个活动后成功登录,我使用Php-MySQL数据库。我不能使用静态关键字登录,比如username=“admin”&&password=“admin”。

  • 我目前正在使用FirebaseAuth和web小部件库firebaseui web开发基于VueJS的登录流原型。 成功认证后(无论是< code>password还是< code>google provider ),小部件加载栏会不断重复,firebaseui-web不会触发其< code > signinseccesswithauthresult 回调。但是对< code > identity