liftScreen验证自定义字段

时间:2012-01-26 14:04:25

标签: scala lift

我正在关注lift wiki中给出的示例。我想知道在创建自定义字段时如何提供valMinLen(length,msg)之类的验证。我试过各种各样的方法,但没有运气。

请举例说明如何为自定义创建的字段提供验证。

编辑 -

对不起,如果上面的问题不清楚,这就是组合网站中的例子,

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

在这里我需要添加valMinLen验证,或者我需要访问生成的错误字符串以将其替换为我的错误字符串。是否可能

1 个答案:

答案 0 :(得分:1)

正如Using LiftScreen field or text中所述,创建自定义字段的方法不止一种。

如果在LiftScreen中使用makeField方法,可以这样说:

makeField[String](
      title,
      "",//"No phone number entered",
      field => SHtml.text("", (_:String)=>{registerThisSnippet()}, ("class","phone")),
      valMinLen(length,msg)
)

如果要在发布的示例中使用更详细但更彻底的显式对象创建,则需要检查Field类中验证属性所在的位置。

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 _) 
    override def validations = valMinLen(length,msg) _ :: super.validations
  } 
} 

有关非常完整的示例,请查看优秀的Lift Cookbook recipe for validations