2017-08-16 8 views
3

私はこのような機能記述:ThymeleafでカスタムSpring EL関数を使用するには?

public interface SUtils { 

    static String reverseString(String input) { 
    StringBuilder backwards = new StringBuilder(); 
    for (int i = 0; i < input.length(); i++) { 
     backwards.append(input.charAt(input.length() - 1 - i)); 
    } 
    return backwards.toString(); 
    } 
} 

そしてStandardEvaluationContext.registerFunctionと、この関数を登録します。 コントローラで私は@Value("#{#reverseString('hello')}")を使うことができます。 しかし、私が使用しているときは、ティンレフで${reverseString('hello')}には Exception evaluating SpringEL expression: "reverseString('hello')"というエラーがあります。

thymeleafでカスタムspelを使用する方法は?テストする方法の前に

答えて

2

を、@Componentを使って豆として、このようなThymeleafのユーティリティクラスを定義することです。 Spring ELでは、自動検出付きの@を使ってそれらを参照することができます。したがって、登録する必要はありません。

@Component 
public interface SUtils { 

    static String reverseString(String input) { 
    // ... 
    } 
} 

<span th:text="${@sUtils.reverseString('hello')}"></span> 
+0

右!それは今の仕事です!どうも! –

0

ないが、静的呼び出し使用してみてくださいぶっきらぼう:私は通常、何

th:text="${T(com.package.SUtils).reverseString('hello')}"

関連する問題