카테고리 없음

문자열이 Thymeleaf의 정규식과 일치하는지 확인하는 방법은 무엇입니까?

기록만이살길 2021. 2. 27. 13:25
반응형

문자열이 Thymeleaf의 정규식과 일치하는지 확인하는 방법은 무엇입니까?

1. 질문(문제점):

Java / Spring / Thymeleaf 스택에서 책을 수집하기 위해 교육 응용 프로그램을 작성 중입니다.

책 제목, 책 크기 (페이지 수)와 같은 책에 대한 몇 가지 값을 입력해야합니다.

dto 클래스 Book의 유효성 검사 필드 :

@NotEmpty
private String title;
@NotNull
@Digits(integer = 4, fraction = 0)
private Integer size;

보기 파일에는 다음이 포함됩니다.

 <td>
    <input type="text" placeholder="book_title" th:field="*{title}">
    <p th:if="${#fields.hasErrors()} and *{title}==''">field title must not be empty</p>
</td>
<td>
    <input type="text" placeholder="size (page)" th:field="*{size}">
    <p th:if="${#fields.hasErrors()} and !${#size.matches('[0-9]{1,4}')}">field value must be digit and less than 4 signs</p>

제대로 작동합니다. title필드가 채워지지 않으면 메시지를 볼 수 있습니다. 그러나 size필드의 경우 4 자리가 예상되지만이 정규식을 올바르게 구성하는 방법은 무엇입니까? !${#size.matches('[0-9]{1,4}')}이런 식으로 경고 메시지가 없습니다.

나는 비슷한 질문을 던졌습니다. 문자열에 숫자가 포함되어 있는지 또는 숫자인지 확인하십시오-Thymeleaf 그러나 부울 조건을 반전해야하며 내 경우에는 작동하지 않습니다.

2. 해결방안:

hasErrors()함수 호출시 Thymeleaf 템플릿에서 오류가있는 필드를 확인할 수 있습니다 .

이 같은:

<p th:if="${#fields.hasErrors('size')}">field value must be digit and less than 4 signs</p>

이렇게하면 size필드에 오류가 있고 해당 값을 확인하기 위해 정규식을 사용할 필요가없는 경우에만 오류가 표시됩니다 .

65777324
반응형