Spring 从web向模型添加参数

Spring 从web向模型添加参数,spring,spring-boot,spring-mvc,thymeleaf,Spring,Spring Boot,Spring Mvc,Thymeleaf,我的问题是使用两个字段来检查密码,实际上我不明白如何向模型中添加一个以上的参数。 我有以下课程: 顾客 客户控制器 自定义数据初始值设定项 客户管理 登记表 我已经尝试在注册Fom中添加一个参数(密码检查),但acruallz我不想这样做,因为这样该参数将保存在客户存储库中。我不想要它 String register(Model model, RegistrationForm form) { //String check_password; model.a

我的问题是使用两个字段来检查密码,实际上我不明白如何向模型中添加一个以上的参数。 我有以下课程: 顾客 客户控制器 自定义数据初始值设定项 客户管理 登记表

我已经尝试在注册Fom中添加一个参数(密码检查),但acruallz我不想这样做,因为这样该参数将保存在客户存储库中。我不想要它

    String register(Model model, RegistrationForm form) {
        //String check_password;
        model.addAttribute("form", form);
        //String check_password = new String();
        model.addAttribute("check_password",check_password);
        return "register";
    }```

```@PostMapping("/register")
    String registerNew(@Valid RegistrationForm form, Errors result,Model model) {
        //assert model.getAttribute("check_password").equals(form.getPassword());
        if(model.getAttribute("check_password")!=form.getPassword()){
            return "register";
        }

        if (result.hasErrors()) {
            return "register";
        }

        customerManagement.createCustomer(form);

        return "redirect:/";
    }```



    ``` <div class="field">
            <label th:text="#{register.password}" for="password">Passwort</label>
            <input id="password" name="password" th:field="*{password}" th:errorclass="fieldError" type="password"
                   required="required"/><br/>
            <p th:if="${#fields.hasErrors('password')}" th:errors="*{password}">Das Passwort darf
                nicht leer sein.</p>
        </div>```





I wish to check password for the equality
If it is not so, the error should be shown on the page
Thanks In advance

您的表单应该与表单相关,而不是与实际客户相关。所以它应该是表单(web部件)的一部分,但以后不会存储在数据库中。和以前的编码程序,以便根据表单
public Customer createCustomer(注册表单){Assert.notNull(表单,“注册表单不能为null!”);var password=UnencryptedPassword.of(form.getPassword());var userAccount=userAccounts.create(form.getName(),password,Customer\u角色)创建客户;return customers.save(new Customer(userAccount,form.getAddress());}
那么为什么要在表单中添加一个字段,使该字段成为
客户的一部分呢?它应该只映射/传输创建客户所需的字段。请不要添加额外的代码作为注释,这是完全不可读的!。判断您添加了什么,只需将该字段添加到表单中,它就不会是
客户的一部分。这就是为什么你,通常,应该为你的web层有一个单独的DTO,以使这些事情成为可能。我认为在get中向模型添加新参数会更容易,但我需要在某个地方创建这个变量,我不能只在Method中创建新变量,只需在表单中添加一个字段,创建一个validor来检查是否相等(或在您的服务方法中)。这是最简单的方法,您将获得绑定、转换、错误翻译等。如果您不这样做,您将不得不自己完成。