Spring MVC - 如何确保URL post表单提交中没有表单提交路径?

时间:2014-07-22 14:58:00

标签: spring-mvc

我对Spring MVC有疑问。我有一个表单,我从用户那里获取一些值。然后提交调用操作(比如addTaskAction)。它调用下面的控制器。控制器执行它需要做的事情(将Task添加到数据库)并调用视图showTasks。直到现在,一切都很好。但这是我的问题。该URL仍显示/ addTaskAction。因此,如果我执行刷新或F5,则再次调用控制器并将另一个任务添加到数据库。 什么是最清洁/行业标准的避免这种方式?如何确保帖子表单提交URL显示/ showTasks而不是/ addTaskAction。

... 加
@RequestMapping(value = "/addTaskAction", method = RequestMethod.POST)
public String addTaskAction(@RequestParam("issueType") String issueType,            
        @RequestParam("priority") String priority,
        @RequestParam("summary") String summary,
        @RequestParam("reporter") String reporter,
        @RequestParam("assignee") String assignee,
        @RequestParam("status") String status,
        @RequestParam("comments") String comments,
        Model model) {
    System.out.println(issueType);
    Task task = new Task(issueType,priority,summary, reporter,
            assignee,status,comments);
    taskRepository.save(task);
    model.addAttribute("tasks", taskRepository.getAllTasks());
    //model.addAttribute("task", task);
    System.out.println("Tasks added-"+taskRepository.getAllTasks().size());
    return "showTasks";
}

1 个答案:

答案 0 :(得分:1)

您不应该从POST返回页面,您应该重定向到其他页面,从而更改网址。在你的例子中,你可能应该有这样的东西:

return "redirect:showTasks";

这会向浏览器返回一个重定向指令,然后请求您指定的页面。

相关问题