scala - 使用 LiftScreen 字段或文本

标签 scala lift

我正在使用 LiftScreen trait 并且我对 field 和 text 方法有疑问。文本方法使用 makeField方法,然后是 SHtml.text渲染字段,而 field方法使用 FormVendor特征来呈现 html。

那么添加字段的最佳方法是什么?我必须使用字段方法还是文本/密码/等方法?

谢谢你。

最佳答案

字段方法是使用字段生成器创建字段的一些语法糖。它使用来自该生成器的默认值来创建字段。

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 _) 
  } 
} 

(取自 Adding Custom Field Types to LiftScreen)

这仅适用于一个 LiftScreen。如果您需要在多个 LiftScreen 上使用自定义字段,请创建一个独立的特征,Lift Wiki声明“您可以在 LiftRules.vendForm 中设置全局类型 → 表单供应商,用于应用程序范围的表单自动售货”。 This page特别是有一些示例代码和更多解释。

关于scala - 使用 LiftScreen 字段或文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008793/

相关文章:

scala - 我可以在 Scala Play 2.3.8 项目中使用新的 java 8 time API 吗?

java - Scala Option.orElse 等效于 Java Optional

scala - 比较scala中的==字符

scala - 片段可以在提升中接受参数吗?

scala - 刚刚下载了Scala Lift聊天应用,按照说明运行,但是失败了

classpath - 为什么电梯找不到我的 "db.properties"

scala - Databricks - 无法从 DataFrame 写入 Delta 位置

scala - 分解具有不同长度的相同类型的多个列

scala - lift:testCond - 它是如何工作的?

java - Scala 和 Java 在同一个项目中