Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JSP和Spring验证_Java_Spring_Jsp_Jstl - Fatal编程技术网

Java JSP和Spring验证

Java JSP和Spring验证,java,spring,jsp,jstl,Java,Spring,Jsp,Jstl,这是我的备份表单: public class BackupForm { private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } 这是验证器: @Component public class BackupFormValidator

这是我的
备份表单

public class BackupForm {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }   


}
这是验证器:

@Component
public class BackupFormValidator implements Validator {

    public boolean supports(Class<?> clazz) {
        return BackupForm.class.isAssignableFrom(clazz);
    }       


    public void validate(Object target, Errors errors) {
        BackupForm backupForm = (BackupForm) target;

        if (backupForm.getName().length() == 0) {
            System.out.println("Empty");
            errors.rejectValue("name", "name.empty", "Name field is empty.");
        } else {
            File file = new File(Configures.getDirectory() + "\\"
                    + backupForm.getName() + ".sql");
            if (file.exists()) {
                System.out.println("Exists");
                errors.rejectValue("name", "name.exist",
                        "File." + backupForm.getName() + ".sql already exists.");
            }
        }

    }
}

怎么了?验证工作正常,但不会返回任何内容。

您应该删除以下行:

map.put("backup", new BackupForm());

此行将modelAttribute重置为新属性,因此不会出现错误。

它是否打印中的内容?是,但不打印
错误
标记。我试图把它从
c:if
中去掉,但没有任何变化。
<form:form method="POST" commandName="backup">
    <c:if test="${!empty error}">
        <div class="alert alert-danger">
            <b>Can not execute command!</b>
            <form:errors path="name" />
        </div>
    </c:if>

    <div class="panel panel-default">
        <div class="panel-heading">New backup</div>
        <div class="panel-body">    

            <table style="width: 100%; border-collapse: collapse;">
                <tbody>
                    <tr>
                        <td
                            style="vertical-align: top; width: 250px; letter-spacing: 0px; word-spacing: 0px;"><form:input
                                path="name" class="form-control input-sm" type="text"
                                placeholder="Enter backup name..." value="${name}" /></td>
                        <td
                            style="text-align: left; vertical-align: top; letter-spacing: 0px; word-spacing: 0px;">
                            &nbsp;&nbsp;&nbsp;<input class="btn btn-success btn-sm"
                            type="submit" value="Backup" />
                        </td>
                    </tr>
                </tbody>
            </table>

        </div>
    </div>
</form:form>
map.put("backup", new BackupForm());