繁体   English   中英

表单在提交时给出Null

[英]Form gives Nulls when submitted

我正在使用Spring MVC +百里香叶,当我提交表单时,它在绑定结果中始终为我提供验证错误(Null)。 任何建议将不胜感激! 谢谢!

错误信息

"Field error in object 'createForm' on field 'authorId': rejected value [null]; codes [NotNull.createForm.authorId,NotNull.authorId,NotNull]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [createForm.authorId,authorId]; arguments []; default message [authorId]]; default message [may not be null]"
@NotNull
@Size(min= 2, max = 100, message = "your title should be between 2 and 100 symbols")
private String title;

@NotNull
@Size(min = 2, message = "Please fill your message")
private String content;

@DateTimeFormat(pattern = "yyyy-mm-dd")
private Date date;

@NotNull
private String authorId;



public String getTitle() {
    return title;
}

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

public String getContent() {
    return content;
}

public void setContent(String content) {
    this.content = content;
}

public Date getDate() {
    return date;
}

public void setDate(Date date) {
    this.date = date;
}

public String getId() {
    return authorId;
}

public void setId(String authorId) {
    this.authorId = authorId;
}
}

还有我的HTML

<form id="create-form" method="post" th:object="${createForm}">
    <div><label for="title">Title:</label></div>
    <input id="title" type="text" name="title" th:value="*{title}"/>
    <span class="formError" th:if="${#fields.hasErrors('title')}" th:errors="*{title}">Invalid title</span>
    <div><label for="content">Content:</label></div>
    <textarea name="content" rows="30" cols="100" id="content" th:value="*{content}"></textarea>
    <span class="formError" th:if="${#fields.hasErrors('content')}" th:errors="*{content}">Invalid content</span>
    <div><label for="date">Date:</label></div>
    <input id="date" type="date" name="date" th:value="*{date}"/>
    <span class="formError" th:if="${#fields.hasErrors('date')}" th:errors="*{date}">Invalid date</span>
    <div><label for="authorId">Author ID:</label></div>
    <input id="authorId" type="text" name="authorId" th:value="*{authorId}"/>
    <span class="formError" th:if="${#fields.hasErrors('id')}" th:errors="*{authorId}">Invalid id</span>

    <br/>
    <br/>
    <div><input type="submit" value="Create"/></div>
</form>

如问题评论中所写:

注释@NotNull不会保护您免受null 与您和其他开发人员一起编写此代码是您自己的合同,在那里不能有null。

这意味着您必须自己验证数据。 有两种方法。 您可以创建AuthorTO ,以允许使用null ,然后仅在不存在意外null或仅在前端进行验证的情况下创建Author

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM