source

안에 다중 조건을 가지는 방법: 타임리프를 사용하여 태그를 지정하는 경우

factcode 2023. 9. 11. 22:15
반응형

안에 다중 조건을 가지는 방법: 타임리프를 사용하여 태그를 지정하는 경우

는 백합잎을 사용하여 세가지 가능한 색상으로 렌더링 할 텍스트가 있습니다.

그래서 지금까지 값을 테스트하기 위해 만든 코드는 다음과 같습니다.

th:if="${evaluation} > 50"
th:if="${evaluation} < 30"

그리고 그것도 잘 작동합니다.

그러나 세 번째 검정은 두 값 사이의 값에 대한 것입니다.그래서 노력했습니다.

th:if="(${evaluation} < 49) ∧ (${evaluation} > 29)"

작동하지 않습니다. 구문 분석 중 오류가 발생했습니다.

org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: "(${evaluation} < 49) &and; (${evaluation} > 29)" (/property.html:41)

물론 이 줄들은 처음 두 줄이 제대로 작동하기 때문에 태그 사이에 있습니다.

피연산자와 피연산자가 정확하지 않을 수도 있지만, 타임리프에 대한 문서는 그러한 피연산자에 대해 실제로 명시적이지 않습니다.

모든 아이디어 환영합니다!

업데이트 : 타임리프 포럼에서 답변을 받았습니다.방법은 다음과 같습니다.

th:if="${evaluation &lt; 49 and evaluation &gt; 29}"

문제 해결!

나는 타임리프 포럼에서 답을 얻었습니다.그 방법은 다음과 같습니다.

th:if="${evaluation &lt; 49 and evaluation &gt; 29}"

문제 해결!

이것이 제게 효과가 있었던 것입니다.

th:if="${evaluation lt 49 and evaluation gt 29}"

제 생각에는, 평가 코드를 적절한 수업에 작성하는 것이 더 좋고 유지 가능한 해결책이 될 수 있을 것 같습니다.

class Evaluator{

private int value;
....

public boolean isBounded() {
    return value < 49 && value > 29;
}

그런 다음 타임리프에서 함수를 호출합니다.

<p th:if="${evaluator.isBounded()} ...

몇 가지 이점:

  1. 클리너 템플릿.
  2. 자바 코드로 제어합니다.
  3. 고립.템플릿을 변경하지 않고도 더 복잡한 평가를 작성할 수 있습니다.

도움이 되었으면 좋겠습니다.

저는 다양한 조건을 갖추기 위해 이 일을 했습니다.th:if백합나무 잎으로

<div 
     th:if="${object.getStatus()} == 'active' and ${object.getActiveDate()}"
     th:text="${#dates.format(object.getActiveDate(), 'yyyy-MM-dd')}"
</div>

조건 사이에 와 연산자를 추가했습니다.또는 필요한 경우 추가할 수도 있습니다.

언급URL : https://stackoverflow.com/questions/16018577/how-to-have-multiple-condition-in-an-thif-tag-using-thymeleaf

반응형