В частности, обращаясь к проблеме <lift:Foo.bar/>
:
Когда в коде встречается <lift:Foo.bar/>
, Lift делает несколько предположений о том, каким должно быть исходное имя (различные соглашения об именах), а затем вызывает java.lang.Class.forName
чтобы получить класс.(Соответствующий код в LiftSession.scala
и ClassHelpers.scala
.) Он найдет только классы, зарегистрированные с addToPackages
во время загрузки.
Обратите внимание, что также возможно (и часто) регистрировать классы и методы вручную.Все еще существует соглашение, что все преобразования должны иметь форму NodeSeq => NodeSeq
, потому что это единственное, что имеет смысл для нетипизированного вывода HTML / XHTML.
Итак, у вас есть внутренний реестр преобразований узлов Lift дляс одной стороны, а с другой стороны неявный реестр модуля.Оба типа используют простой поиск строки для выполнения метода.Я предполагаю, что это спорно, если один больше отражения на основе других.