Невозможно получить доступ к именам переменных Java смешанного (верблюжьего) случая, используя FreeMarker - PullRequest
0 голосов
/ 26 ноября 2011

Я использую FreeMarker (2.3.18) для доступа к переменным Java в пользовательском классе.Когда имя переменной имеет смешанный регистр (верблюжий случай), я получаю сообщение об ошибке, в котором говорится, что переменная не существует.

Это фрагмент моего класса:

 public class Student{

       private String name_last, nameFirst;

       public String getName_last(){
        return name_last;
       }

       public String getNameFirst(){
        return nameFirst;
       }
   }

В моемШаблон FreeMarker, ${passedInStudent.name_last} возвращает значение успешно, но ${passedInStudent.nameFirst} - возвращает ошибку, сообщающую

freemarker.core.InvalidReferenceException: Expression
    passedInStudent.nameFirst is undefined on line ...
  1. Есть ли известная проблема с использованием имен переменных верблюжьих букв в FreeMarker?
  2. Возможно, это проблема с этой конкретной версией FreeMarker?
  3. Существует ли конфигурация для управления ею?
  4. Что-то не так с тем, как я обращаюсь к этим переменным?

Ответы [ 2 ]

0 голосов
/ 29 ноября 2011

ОК, проблема решена!

Мы заполняем запись из кода JSON, что означает, что JSON пытался использовать установщик в соответствии со способом определения свойств в нотации JSON (верхний регистр, нижнийдело и тд).Поскольку имя установщика не соответствовало имени JSON (т. Е. SetNameFirst в качестве имени установщика и name_first в JSON), объект не был инициализирован, и FreeMarker выдал ошибку.

Я установил жестко закодированное значениев геттере, чтобы исключить возможность нулевого объекта, когда я не увидел никакой ошибки - это дало мне решение.

Спасибо за прослушивание:)

0 голосов
/ 26 ноября 2011

Ваш код должен работать.Конечно, nameFirst равно null, следовательно, он считается пропущенным, если речь идет о FreeMarker.

...