【问题标题】:Why @vaild annotation is not working in my spring MVC application? I searched a lot, but couldn't find solution为什么 @vaild 注释在我的 Spring MVC 应用程序中不起作用?我搜索了很多,但找不到解决方案
【发布时间】:2020-09-26 15:28:24
【问题描述】:

基本上,如果该字段无效,它应该返回一条消息。但就我而言,它在这里不起作用!

下面是我的控制器类。

@Controller 
public class StoreController {


    private NearByStoreInterface getmestore;

    @Inject
    public StoreController(NearByStoreInterface getmestore) {
        this.getmestore=getmestore;
    }


    @RequestMapping(value = "/nearbystore", method = RequestMethod.GET) 
    public String display(Model m) 
    {
        final ControllerTolibModel userDetails=ControllerTolibModel.builder().build();

        m.addAttribute("user", userDetails);

        return "formTosubmit";
    }



    @RequestMapping(value="/nearbystore", method=RequestMethod.POST)
    public String submit(@Valid @ModelAttribute("user") ControllerTolibModel userDetails,BindingResult errors,Model m) 
    {
        if(errors.hasErrors())
            return "formTosubmit";

        final List<StoresDetails> storedetails=getmestore.getmeStore(userDetails);

        if(storedetails.size()==0)
            return "nostores";

        m.addAttribute("details", storedetails);

        return "viewStoreDetails";
    }
}        

这里@valid 不起作用。也在它的 modelClass 的 controllerTolibModel 之下。

package com.amazon.lib;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class ControllerTolibModel {

    @NotBlank
    private String pincode;


    @NotNull
    @Min(1)
    @Max(100)
    private Double radius;


    @NotNull
    private String category;
}

这是一个 formTosubmit.jsp 文件。如果它可以帮助您了解更多。

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<html>
<h2> Enter details here...</h2>
<body>
<form:form action="nearbystore" method="post" modelAttribute="user">
Enter your pincode : <form:input path="pincode"/><br><br>

<form:errors path="pincode"  cssClass="text-danger"/>
Enter radius in KM : <form:input path="radius"/><br><br>
Select category of store : <form:select path="category">
<form:option value="all" label="all"/>
<form:option value="grocery" label="grocery"/>
<form:option value="garments" label="garments"/>
<form:option value="electronics" label="electronics"/>
<form:option value="Dairy" label="Dairy"/>
<form:option value="QSR" label="QSR"/>
</form:select><br><br>
<input type="submit" name="submit"/>
</form:form>
</form>
</body>
</html>

提前致谢!

【问题讨论】:

    标签: validation spring-mvc notnull


    【解决方案1】:

    你需要在你的类路径中实现Bean Validation@Valid 才能工作。例如,在您的类路径中添加 Hibernate Validator

    Gradle

    compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.1.5.Final'
    

    Maven

    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.1.5.Final</version>
    </dependency>
    

    【讨论】:

    • 多么愚蠢的错误!谢谢我的兄弟!它就像一个魅力!!!
    猜你喜欢
    • 2016-08-28
    • 2017-01-30
    • 1970-01-01
    • 2022-01-08
    • 2017-08-14
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    • 2020-10-23
    相关资源
    最近更新 更多