我对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";
}
答案 0 :(得分:1)
您不应该从POST
返回页面,您应该重定向到其他页面,从而更改网址。在你的例子中,你可能应该有这样的东西:
return "redirect:showTasks";
这会向浏览器返回一个重定向指令,然后请求您指定的页面。