我有一个问题,我在网络上的任何地方都找不到答案。我有一个在 Scala 上编写的基于 Lift 的 Web 应用程序。我的应用程序中有一个由代码段驱动的表单。我将 Mapper 用于我的模型,并override def validations ...
用于定义模型的验证参数。模板代码如下所示:
<form class="lift:GroupManager.addGroup?form=POST&action=add">
<div class="row collapse" style="width: 30em">
<div class="small-8 columns">
<span class="group-name prefix radius"></span>
</div>
<div class="small-4 columns">
<span class="submit button small postfix radius">Add New Group</span>
</div>
</div>
</span>
</form>
片段代码:
def addGroup = {
object groupName extends RequestVar[String]("")
def doAddGroup() = {
val group = Group.create.createdAt(new java.util.Date).groupName(groupName.is)
group.validate match {
case Nil => {
group.save
S.notice("Group '" + group.groupName.is + "' has been added successfully")
}
case errors:List[FieldError] => {
S.error(errors)
}
}
}
".group-name" #> SHtml.text(groupName.is, groupName(_), "id" -> "group-name") &
".submit" #> SHtml.submit("Add group", doAddGroup)
}
模型的验证覆盖:
object groupName extends MappedString(this, 700) {
override def dbColumnName = "group_name"
override def dbNotNull_? = true
override def validations = valMinLen(1, S.?("Group name should not be empty!")) _ ::
valMaxLen(700, S.?("Group name should not be more than 700 characters long!")) _ ::
valUnique(S.?("Group name should be unique!")) _ ::
super.validations
}
现在一切都很完美,除了当提供无效数据时,S.error 用于通知用户问题。我想要做的是突出显示数据无效的表单元素(通过应用 class="error"),并<span>
在表单元素前面添加一个带有错误消息的元素。有没有一种简单的方法可以使用 Lift 框架来做到这一点?或者我应该遍历errors:List[FieldError]
并从该数组中获取字段信息,这对我来说似乎不太优雅?