복붙노트

[SPRING] Thymeleaf의 입력 유효성 검사

SPRING

Thymeleaf의 입력 유효성 검사

나는이 의견을 가지고있다 :

Masa: <input type="number"  class="form-control form-text"   name="masa"/>
    <div class="text col-sm-12 error" th:if="${wzrost}" >
        <p class="text text-center">
            To pole jest wymagane
        </p>
    </div>
    Wzrost: <input type="number" class="form-control form-text "   name="wzrost"/>
    <div class="text col-sm-12 error" th:if="${wzrost}" >
        <p class="text text-center">
            To pole jest wymagane
        </p>
    </div>

그리고이 컨트롤러;

String x = String.valueOf(masa);
        String y = String.valueOf(wzrost);


        if(x==null ){
        model.addAttribute("wzrost",true);
        return"views/success";
    }
        if(y==null ){
            model.addAttribute("wzrost",true);
            return"views/success";
        }

양식 제출 버튼을 클릭하면 항상 nullpointerexception 오류가 발생합니다.

입력이 유효한지 확인하여 비어있을 때 메시지가 팝업되도록하십시오.

해결법

  1. ==============================

    1.

    @PostMapping("/cal-bmi")
    public String calculateBmiForm(Model model, Integer masa, Integer wzrost) {
    
    String x = String.valueOf(masa);
        String y = String.valueOf(wzrost);
    
    
        if(x==null ){
        model.addAttribute("wzrost",true);
        return"views/success";
    }
        if(y==null ){
            model.addAttribute("wzrost",true);
            return"views/success";
        }
    }
    

    내가 가치 양식 masa와 wzrost를 얻었을 때 나는 null에서 확인한다. 나는 alwas nullpointerexception을 클릭한다.

     <form th:action="@{/cal-bmi}" method="post">
    
        <ul class="gender-options">
            <input id="man" type="radio" name="gender" value="male" required  />
            <label for="man">mężczyzna</label> &frasl;
            <input id="woman" type="radio" name="gender" value="female"/>
            <label for="woman">kobieta</label>
        </ul>
    
    
        Masa: <input type="number" class="form-control form-text" required placeholder="(kg)" name="masa"/>
    
        <!--<div class="text col-sm-12 error" th:if="${wzrost}">-->
            <!--<p class="text text-center">-->
                <!--To pole jest wymagane-->
            <!--</p>-->
        <!--</div>-->
        Wzrost: <input type="number" class="form-control form-text " required placeholder="(cm)" name="wzrost"/>
    
        <!--<div class="text col-sm-12 error" th:if="${wzrost}">-->
            <!--<p class="text text-center">-->
                <!--To pole jest wymagane-->
            <!--</p>-->
        <!--</div>-->
        <input type="submit" class="col-lg-10 btn btn-primary" value="Oblicz"/>
    </form>
    

    지금은 필요하지만 사용하지 않는 좋은 해결책입니다.

  2. ==============================

    2.서버 측 유효성 검사를 구현하려는 것 같습니다. 이를 위해 가장 좋은 방법은 유효성 검사기와 해당 바인딩 결과를 사용하는 것입니다. 서버 측 유효성 검사를 구현하는 단계는 다음과 같습니다.

    서버 측 유효성 검사를 구현하려는 것 같습니다. 이를 위해 가장 좋은 방법은 유효성 검사기와 해당 바인딩 결과를 사용하는 것입니다. 서버 측 유효성 검사를 구현하는 단계는 다음과 같습니다.

  3. from https://stackoverflow.com/questions/53366245/validate-input-in-thymeleaf by cc-by-sa and MIT license