在我的页面上,我有一个带有注册输入的表单,以及一个将在同一页面中更新的表格。在我的情况下,我的控件保存,然后调用列表,但这使得输出数据和保存方法中生成的成功消息消失。
保存方法:
@RequestMapping(method = RequestMethod.POST)
public ModelAndView salvar(@Validated Cliente cliente, Errors errors,
RedirectAttributes attributes) {
if (errors.hasErrors()) {
return;
}
try {
clienteService.salvar(cliente);
attributes.addFlashAttribute("mensagem", "Cliente salvo com sucesso!!!");
} catch (DataIntegrityViolationException e) {
//
}
return pesquisar("");
}
列表方法:
@RequestMapping
public ModelAndView pesquisar(@ModelAttribute("filtroPesquisa") String nomeCliente) {
// se o nome for vazio vai retornarTodos
List<Cliente> todosClientes = clienteService.pesquisar(nomeCliente);
ModelAndView mv = new ModelAndView("tela-cliente");
mv.addObject("cliente", new Cliente());
mv.addObject("clientesTabela", todosClientes);
return mv;
}
问题: 请注意,在我的方法列表中,我实例化引用表单的Client对象,然后在表中定义列表。这样我总是会丢失没有条目的输入内容,并且不会显示成功消息。我认为这很重要,但我仍然不理解这个SpringMVC模型。
答案 0 :(得分:0)
我不确定你想做什么,但据我所知,你想在保存数据后保留表单值(idk为什么要这样做)。
你必须在这里传递填写的表格
mv.addObject("cliente", cliente);
坚持用
创建新的mv.addObject("cliente", new Cliente());
因为这会使您的表单数据消失。