3

I create in controller method:

@RequestMapping(value = "/user/registration", method = RequestMethod.GET)
    public String showRegistrationForm(WebRequest request, Model model) {
        UserDto userDto = new UserDto();
        model.addAttribute("user", userDto);
        return "registration";
    } 

and when I turn to URL localhost:8080/user/registration SpringInputGeneralFieldTagProcessor throw TemplateProcessingException .

org.thymeleaf.exceptions.TemplateProcessingException: Error during execution of processor 'org.thymeleaf.spring4.processor.SpringInputGeneralFieldTagProcessor' (template: "registration" - line 12, col 36)

How to resolve this?

registration.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Registration page</title>
</head>
<body>
<form name='regForm' th:userDto="${user}" th:action="@{/registration}" enctype="utf8" method="post">
    <table>
        <tr>
            <td>User:</td>
            <td><input type="text" th:field="*{username}"/></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input type='email' th:field="*{email}"/></td>
        </tr>

        <tr>
            <td>Password:</td>
            <td><input type='password' th:field="*{password}"/></td>
        </tr>
        <tr>
            <td>Matching password:</td>
            <td><input type='password' th:field="*{matchingPassword}"/></td>
        </tr>
        <tr>
            <td><input name="submit" type="submit" value="submit" /></td>
        </tr>

    </table>
</form>

</body>
</html>

my UserDto.java

package com.eve.web.dto;

import com.eve.validation.ValidEmail;
import org.hibernate.validator.constraints.NotEmpty;

import javax.validation.constraints.NotNull;

public class UserDto {
    @NotNull
    @NotEmpty
    private String username;


    @NotNull
    @NotEmpty
    private String password;

    private String matchingPassword;

    @ValidEmail
    @NotNull
    @NotEmpty
    private String email;


    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getMatchingPassword() {
        return matchingPassword;
    }

    public void setMatchingPassword(String matchingPassword) {
        this.matchingPassword = matchingPassword;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }
}
1
  • Replace th:userDto="${user}" to th:objet="${user}" and then use th:field="*{username}" . It works fine. Commented Aug 23, 2019 at 13:19

1 Answer 1

1

since you are using user, you should add to all your attributes user.

here you will find the working code `

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8"/>
    <title>Registration page</title>
</head>
<body>
<form name='regForm' th:userDto="${user}" th:action="@{/registration}" enctype="utf8" method="post">
    <table>
        <tr>
            <td>User:</td>
            <td><input type="text" th:field="*{user.username}"/></td>
        </tr>
        <tr>
            <td>Email:</td>
            <td><input type='email' th:field="*{user.email}"/></td>
        </tr>

        <tr>
            <td>Password:</td>
            <td><input type='password' th:field="*{user.password}"/></td>
        </tr>
        <tr>
            <td>Matching password:</td>
            <td><input type='password' th:field="*{user.matchingPassword}"/></td>
        </tr>
        <tr>
            <td><input name="submit" type="submit" value="submit" /></td>
        </tr>

    </table>
</form>

</body>
</html>

`

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.