java - Play框架: scala template, if语句问题

标签 java scala if-statement playframework

我不明白为什么这不起作用,这是我的模板代码:

@workuserForm: Form[WorkUser],queues: List[Queue])
@import helper._
@import helper.twitterBootstrap._

@main("User Form"){

@helper.form(action = routes.Users.saveWorkUser() , 'class -> "form-horizontal"){

@for(queue <- queues){
    @repeat(workuserForm("queues"), min = 0){ wuQueue =>
        @wuQueue("id").value  
        @queue.id
        @if(wuQueue("id").value == queue.id){
           checked
        }
    }
}

我得到的输出:

<小时/>

1 1

1 2

1 3

2 1

2 2

2 3

3 1

3 2

3 3

<小时/>

我应该去哪里:

<小时/>

1 1 已检查

1 2

1 3

2 1

2 2 已检查

2 3

3 1

3 2

3 3 已检查

<小时/>

我的模型:

public class WorkUser
{
    public String showName;
    public List<Queue> queues = new ArrayList<Queue>();
}


public class Queue extends Model
{
    public long id;
    public String name;
}

我的 Controller (我在其中调用 scala 模板)

public class Users extends Controller
{
    private static final Form<WorkUser> workuserForm = Form.form(WorkUser.class);
    public static Result newWorkUser()
    {
        List<Queue> queues = Queue.findAll();
        WorkUser workUserAux = new WorkUser();
        workUserAux.queues = queues;
        Form<WorkUser> filledForm = workuserForm.fill(workUserAux);
        return ok(views.html.workUser.render(filledForm,queues));
    }
}

看来问题出在if语句上,但我无法解决,我已经尝试了所有。

最佳答案

wuQueue("id").value 的类型为 Stringqueue.id 的类型为 Long >,所以你的平等检查永远不会通过。考虑将其重写为:

@if(wuQueue("id").value.toLong == queue.id){
  checked
}

关于java - Play框架: scala template, if语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21266826/

相关文章:

scala - 不可变集合的类型别名

scala - 将 JavaScript (d3) 翻译为 Java

sql - Slick 中的子查询、具有和分组依据

javascript - 如何在if语句中隐藏元素?

java - LinkedList打印和删除问题

java - 格式字符串错误参数过多

javascript - Raphael.js - if/else 语句在点击时不切换

javascript - 检测移动设备

java - 执行停止但未恢复的 Activity ?

java - 如何在 Java 中模拟引用传递?