Scala 在视图中播放一个元组

Scala 在视图中播放一个元组,scala,playframework-2.0,Scala,Playframework 2.0,我正在尝试比较两个Seq字符串,这两个字符串是我在Play中使用ApacheLDAP API得到的!Scala上的框架。 过了几天我就没有主意了。 这是一个开始: @(compares:Seq[Compare],compares1:Seq[Compare],compareForm:Form[(String,String)])(隐式请求:请求[Any]) @导入助手_ @main(“管理工具”,request.uri){ 我有两个迭代-如何比较它们 @for(compare <- compa

我正在尝试比较两个Seq字符串,这两个字符串是我在Play中使用ApacheLDAP API得到的!Scala上的框架。 过了几天我就没有主意了。 这是一个开始:

@(compares:Seq[Compare],compares1:Seq[Compare],compareForm:Form[(String,String)])(隐式请求:请求[Any])

@导入助手_

@main(“管理工具”,request.uri){

我有两个迭代-如何比较它们

@for(compare <- compares) {
    <td>@for(group <- compare.memberOf) {
        <li style="list-style-type: none;">@group.replaceAll(",(.*)","").replaceAll("(.*)=","")</li>
    }</td>
}
@for(compare1 <- compares1) {
    <td>@for(group1 <- compare1.memberOf) {
        <li style="list-style-type: none;">@group1.replaceAll(",(.*)","").replaceAll("(.*)=","")</li>
    }</td>
}   

@for(compare我知道这可能是一个迟来的答案,但当时我设法解决了这个问题。
代码可能有点脏,但我希望它对某些人有用

模型部件:

def intersection(c1:Seq[String], c2:Seq[String]): Seq[String] = {
    (Set(c1: _*) & Set(c2: _*)).toSeq
}
控制器部分:

compareForm.bindFromRequest.fold(
hasErrors = {errors => BadRequest(views.html.compares.index(compareForm, username, User.find(username)))},
success = { ldapName => 
  val leftUser = Compare.findAll(ldapName._1)
  val rightUser = Compare.findAll(ldapName._2)
  val intersection = Compare.intersection(leftUser.memberOf,rightUser.memberOf) 
  val rightLacking: Seq[String] = (leftUser.memberOf.toSet -- intersection.toSet).toList.map(_.toString).sorted      
  val leftLacking: Seq[String] = (rightUser.memberOf.toSet -- intersection.toSet).toList.map(_.toString).sorted
  val bothOk: Seq[String] = (intersection.toSet).toList.sorted
  Ok(views.html.compares.list(leftUser, rightUser, rightLacking, leftLacking, bothOk, compareForm, username, User.find(username)))
}  )
注意!

您所说的“如何比较它们”是什么意思?您想看看它们是否相同长度?是否具有相同的值?如果在比较两个列表时需要执行一些逻辑,您应该在视图以外的其他位置执行该操作(如控制器或控制器委托的某些服务)。