Метод поля - это немного синтаксического сахара для создания полей с использованием генераторов полей.Для создания поля он использует значения по умолчанию из этого генератора.
Метод makeField учитывает точные спецификации вашего поля.
Как такового, «Один лучший ответ» отсутствует.Если вас устраивают поля по умолчанию, созданные FormVendor, используйте их.Если вам нужен более конкретный контроль над полями, используйте makeField.
makeField эффективно принимает заданные ему аргументы и использует их для создания настраиваемого поля.Например, makeField("Password", "", SHtml.password(is, set _))
фактически равно
object MyScreen extends LiftScreen {
val password = new Field {
type ValueType = String
override def name = "Password"
override implicit def manifest = buildIt[String]
override def default = ""
override def toForm: Box[NodeSeq] = SHtml.password(is, set _)
}
}
(взято из Добавление типов пользовательских полей к LiftScreen )
Это относится только к одному LiftScreen.Если вам нужно использовать настраиваемое поле на нескольких LiftScreen'ах, создать отдельную черту, Lift Wiki заявляет " Вы можете настроить глобальных поставщиков Типа → Формы в LiftRules.vendForm для области приложенияФорма продажи". В частности, на этой странице приведен пример кода и дополнительные пояснения.