代码之家  ›  专栏  ›  技术社区  ›  Jill

Spring-如何在提交表单后刷新页面?

  •  0
  • Jill  · 技术社区  · 6 年前

    使用Spring引导,我有一个时间表页面。

    enter image description here

    您可以单击一个正方形,它将打开一个小窗体,您可以使用该窗体从时间表(保存在数据库中)中添加或删除类对象。

    我的问题是,当您单击“添加”(或“删除”)时,当它成功地从时间表中添加/删除该对象时,您必须刷新页面才能看到在时间表上添加/删除的类。当从用户的角度单击“添加”时(直到手动刷新页面),似乎什么也不会发生。

    post方法重定向回时间表页面get。我尝试将它重定向到另一个mini-get方法,然后将其重定向回原始的时间表页面;但是从浏览器方面看,它仍然没有发生任何事情-只是停留在与原始问题相同的页面上。希望听到一个潜在的解决方案,谢谢!

    编辑:以下是我的get和post方法示例:

    @GetMapping("/timetable/{id}/{semId}")//This method displays timetable.
    public String timetable(@PathVariable(value = "id") String id, Model model,
            @PathVariable(value = "semId") String semId) {
    
    //code..
        model.addAttribute("x", x);
    
        return "timetable";
    
    }
    
    @PostMapping("/timetable/{id}/{semId}")
        public String timetablePost(@ModelAttribute TimetableClassDto dto, @PathVariable(value = "id") String id,
                Model model, @PathVariable(value = "semId") String semId) {
    //code..
    
        return "redirect://timetable/00/" + semId;
    
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Marios    6 年前

    你的重定向应该有两个//吗?我的代码中有类似的东西,它工作得很好。但是,我先创建一个URL,然后返回它。另外,请确保您的GET映射根据从重定向中获得的新参数正确地填充了对象。 使用以下内容:

                           ??
    String url = "redirect://timetable/00/" + semId;
    
    return url;