public static Java 변수를 매개 변수 중 하나로 사용하는 FreeMarker 템플릿에서 Java 메서드를 호출하려고합니다. 예를 들어, test.ftl
에서 프리 마커 코드는이 경우 : 다음과 같이 그 템플릿을 사용할 때이 오류가 발생FreeMarker에서 public Java 변수를 호출하는 방법
public class JavaClass {
public static final int VARIABLE = 1;
public String getSomething(int var) {
...
}
:
${javaClass.getSomething(javaClass.VARIABLE)}
및 클래스 JavaClass
은 다음과 같습니다 경우
[echo] Expression JavaClass is undefined on line 40, column 81 in com/test/template/path/test.ftl. [echo] The problematic instruction: [echo] ---------- [echo] 03:53:01,146 ERROR [main][runtime:96] Template processing error: "Expression JavaClass is undefined on line 40, column 81 in com/test/template/path/test.ftl" [echo] [echo] ==> ${javaClass.getSomething(javaClass.VARIABLE)} [on line 40, column 25 in com/test/template/path/test.ftl] Expression JavaClass is undefined on line 40, column 81 in com/test/template/path/test.ftl. [echo] [echo] ----------The problematic instruction: [echo] [echo] [echo] ---------- [echo] Java backtrace for programmers: [echo] ---------- [echo] ==> ${javaClass.getSomething(javaClass.VARIABLE)} [on line 40, column 25 in com/test/template/path/test.ftl]freemarker.core.InvalidRe ferenceException: Expression JavaClass is undefined on line 40, column 81 in com/test/template/path/test.ftl. ... ...
이 오류는 javaClass.VARIABLE
과 thro가 마음에 들지 않는다고 불평하고 있습니다. InvalidReferenceException
과 함께합니다. JavaClass.VARIABLE
, ${javaClass.VARIABLE}
및 ${JavaClass.VARIABLE}
과 같이 다른 방법으로 지정하려고 시도했지만 모두 오류가 발생합니다.
FreeMarker (.ftl) 템플릿의 Java 메소드에서 공개 Java 변수를 어떻게 호출합니까?
사용합니다. – ddekany
또한'model.addAttribute ("ClassName", statics.get (ClassName.class.getName()))'을 사용하는 것이 더 좋을 것입니다. 그러면 템플릿에서 간단히'$ {ClassName.FIELD_NAME}'을 쓸 수 있습니다. – ddekany
yea, fair enough - 키를 classname으로 만든 다음 해당 클래스의 모델을 개별적으로 추가하는 것이 좋습니다. – Chii