使用spring MVC进行列表时仅更新表

时间:2017-11-06 10:39:05

标签: java spring-mvc thymeleaf

在我的页面上,我有一个带有注册输入的表单,以及一个将在同一页面中更新的表格。在我的情况下,我的控件保存,然后调用列表,但这使得输出数据和保存方法中生成的成功消息消失。

保存方法:

@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模型。

1 个答案:

答案 0 :(得分:0)

我不确定你想做什么,但据我所知,你想在保存数据后保留表单值(idk为什么要这样做)。

你必须在这里传递填写的表格

mv.addObject("cliente", cliente);

坚持用

创建新的
mv.addObject("cliente", new Cliente());

因为这会使您的表单数据消失。