Могу ли я вызвать функцию из объекта Java, которая сгенерировала имя из нескольких строк? В моем примере это простой геттер. Просто любопытно.Функция вызова с динамически сгенерированным именем в Freemarker
процесс является объектом Java, как это:
public class Process {
private int number = 0;
public int getNumber() {
return this.number;
}
public String getPropertyName() {
return "number";
}
}
Допустим, мы проходили мимо объекта процесса в шаблоне Freemarker как переменную процесса с чем-то вроде этого:
возвращение Results.html() .render («процесс», новый Process());
Теперь у нас есть html-страница, содержащая фрагмент кода ниже. Метод, который я имею в виду, должен сделать что-то вроде этого примера (пример не работает!):
<#assign methodName = "process.get" + process.getPropertyName()?cap_first + "()">
<input name="${process.getPropertyName()}" type="number" value="${methodName}"/>
результат интерпретируется в HTML заключается в следующем:
<input name="number" type="number" value="process.getNumber()"/>
Но это всего лишь строка, и она не интерпретируется в шаблоне freemarker как значение, хранящееся внутри метода.
Как вы думаете, есть ли способ достичь этого?
Спасибо, вот и все! Может быть, было слишком поздно найти решение самостоятельно;) – Krt