【问题标题】:Springs form null values弹簧形成空值
【发布时间】:2017-05-18 22:42:22
【问题描述】:

我的春季表单有一个小问题,它是一个带有标题、用户名和密码的简单表单,验证就像我尝试提交一个空表单一样我得到一个错误但是如果我输入值并提交表单,它已提交,但显示插入的值为“null”。

域:

@Entity
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String title;

    @NotNull
    @Size(min=2, max=30)
    private String username;

    @NotNull
    @Size(min=6)
    private String password;

    public String getTitle() { return title; }

    public String getUsername() { return username; }

    public String getPassword() { return password; }

    public Long getId() { return id; }

    public void setId(Long id) {
        this.id = id;
    }

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

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

    public void setTitle(String title) { this.title = title; }

    public List<Note> getNotes() {
        return notes;
    }

    @OneToMany
    private List<Note> notes = new ArrayList<Note>();
}

表格:

<form action="#" th:action="@{/create/user}" th:object="${user}" method="post">
    <input type="hidden" th:field="*{id}" />
    <p>Title: <input type="text" th:field="*{title}" /></p>
    <p>Username: <input type="text" th:field="*{username}" /></p>
    <p>Password: <input type="password" th:field="*{password}" /></p>
    <p><input type="submit" value="Submit" /></p>
</form>

<div class="form-group">
    <ol class="list-group">
        <li class="list-group-item list-group-item-info" th:each="user : ${user}">
            <a href="#" th:href="@{/note/}+${user.id}"><span th:text=" ${user.title} + ${user.username} + ${user.password} "></span></a>
            <a href="#" th:href="@{/delete/user/}+${user.id}" class="pull-right">delete</a>
        </li>
    </ol>
</div>

控制器:

@Controller
public class UserController {
    @Autowired
    protected UserService userService;

    @RequestMapping(value = "/create/user", method = RequestMethod.POST)
    public String createUser(Model model, @Valid @ModelAttribute("user") User user, BindingResult bindingResult){
        if(bindingResult.hasErrors()){
            model.addAttribute("user", user);
            model.addAttribute("users", userService.findAll());
            model.addAttribute("type", "danger");
            model.addAttribute("message", "Please fill in all the fields" +
                    "Username needs to be at least 2 characters" +
                    "Passwords needs to contain at least 6 characters");
            return "user";
        }

        userService.save(user);

        model.addAttribute("user", new User());
        model.addAttribute("cards", userService.findAll());

        model.addAttribute("type", "success");
        model.addAttribute("message", "A new user has been added");

        return "user";
    }

如果需要任何额外的代码,请告诉我,我还是 Spring 新手

【问题讨论】:

  • 能否提供您项目的链接?我可以试试看。我对这个主题不是很熟悉,但我想试试
  • 也可能与以下问题重复:stackoverflow.com/questions/29885802/…
  • 我正在本地处理它,所以我无法真正向您展示它,除非我将它发送给您?该解决方案对我不起作用
  • 什么意思?是在数据库中插入值null,还是您的表单显示空字段?
  • 我附上了一张截图。基本上我输入值,添加它并添加记录,但作为 null null null 而不是实际值

标签: spring forms spring-mvc


【解决方案1】:

查看代码发现错误:

在输出注册用户时的形式是:

<li class="list-group-item list-group-item-info" th:each="user : ${user}">

虽然应该是:

<li class="list-group-item list-group-item-info" th:each="user : ${users}">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-12
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    相关资源
    最近更新 更多