首页 > 解决方案 > 重定向到另一个页面时如何保存数据

问题描述

我使用teamleaf和springboot。

创建新用户时,他会被重定向到该用户可以在其上创建卡片的另一个页面。问题是在转发时,有关用户的数据会丢失。也就是说,卡片不知道它的创建者是谁。

@Controller
public class PersonController 
    @RequestMapping(value = {"/addPerson"}, method = RequestMethod.POST)
    public String savePerson(Model model, 
                             @ModelAttribute("personForm") PersonForm personForm) {
    
        String firstName = personForm.getFirstName();
        String lastName = personForm.getLastName();
        double money = personForm.getMoney();
    
        if (firstName != null && firstName.length() > 0 //
                && lastName != null && lastName.length() > 0) {
          Person   newPerson = new Person(firstName, lastName, money);
            personService.save(newPerson);
    
            return "redirect:/addKonto";
        }
    
        model.addAttribute("errorMessage", errorMessage);
        return "addPerson";
    }

连接控制器

@RequestMapping(value = {"/addKonto"}, method = RequestMethod.POST)
    public String saveKonto(Model model, //
                            @ModelAttribute("kontoForm") KontoForm kontoForm) {

        String kontoName = kontoForm.getKontoName();
        double moneyInKonto = kontoForm.getMoneyInKonto();

        if (kontoName != null && kontoName.length() > 0) {
            Konto newKonto = new Konto(kontoName, moneyInKonto);
            kontoService.save(newKonto);

            return "redirect:/personList";
        }

user 和 card 是一对多的关系

public class Person {

    private String firstName;
    private String lastName;
    private double money;

    @OneToMany (mappedBy = "person", fetch = FetchType.EAGER, cascade = {CascadeType.PERSIST, CascadeType.REMOVE,
            CascadeType.MERGE})
    private Set<Konto> kontos = new HashSet<>();


public class Konto {
    private String kontoName;
    private double moneyInKonto;

    @ManyToOne(optional = false)
    @JoinColumn(name = "person_fk_id")
    private Person person;

当我转到另一个页面时如何保存用户数据,以及保存用户和卡?

标签: javaspring-bootspring-mvcthymeleaf

解决方案


我猜管理员正在添加用户并管理他们的卡片。在这种情况下,您可以使用RedirectAttributes以将新创建​​的用户 ID 传递给新页面。

看看这里https://stackoverflow.com/a/19269653/869793

它还可以帮助您直接通过 URL 传递属性。


推荐阅读