Groovy playframework中的If/else语句';s观点

Groovy playframework中的If/else语句';s观点,groovy,playframework-1.x,Groovy,Playframework 1.x,我对这样的条件语句有一个看法 #{list items: allTasks, as: 'task'} <div class="task grid_12"> #{list items:allClients, as: 'client' } <div class="client grid_1"> #{list items:allTasksDone, as: 'taskDone'} #{if t

我对这样的条件语句有一个看法

#{list items: allTasks, as: 'task'}
<div class="task grid_12">

    #{list items:allClients, as: 'client' }
        <div class="client grid_1">

            #{list items:allTasksDone, as: 'taskDone'}

                #{if task.name==taskDone.task.name && client.name ==taskDone.client.name}
                    Done
                #{/if}
                #{else}
                    Not yet
                #{/else}
            #{/list}
        </div>
    #{/list}
</div>
#{/list}
#{列出项目:所有任务,如:“任务”}
#{列出项目:所有客户端,如:'client'}
#{列出项目:allTasksDone,如:'taskDone'}
#{如果task.name==taskDone.task.name&&client.name==taskDone.client.name}
多恩
#{/if}
#{else}
还没有
#{/else}
#{/list}
#{/list}
#{/list}
但结果是:如果条件为真,则显示“尚未完成”;如果条件为假,则显示“尚未完成”。
结果似乎是双倍的。

如何修复此问题?

谢谢Palako。是的,这是因为循环变量“taskDone”。我已经检查并修改了我的代码,如下所示:

<div class="task grid_24">
<div class="client grid_3">
Task/Client
</div>
#{list items:allClients, as: 'client' }
<div class="client grid_2">
${client.name} </div>
#{/list}
</div>


#{list items: allTasks, as: 'task'}
<div class="task grid_24">
    <div class="client grid_3">
        ${task.name}
    </div>

    #{list items:allClients, as: 'client' }
    %{
        i =0;
        }%
        <div class="client grid_2">
            #{list items:allTasksDone, as: 'taskDone'}

                #{if (taskDone.task == task && taskDone.client == client )}
                %{
                    i++;
                    }%
                #{/if}


            #{/list}
        <div class="taskStatus grid_2">
        #{if i>0}Done#{/if}
            #{else } Not yet#{/else}
        </div>
        </div>

    #{/list}
</div>
#{/list}

任务/客户端
#{列出项目:所有客户端,如:'client'}
${client.name}
#{/list}
#{列出项目:所有任务,如:“任务”}
${task.name}
#{列出项目:所有客户端,如:'client'}
%{
i=0;
}%
#{列出项目:allTasksDone,如:'taskDone'}
#{if(taskDone.task==task&&taskDone.client==client)}
%{
i++;
}%
#{/if}
#{/list}
#{if i>0}完成{/if}
#{else}还没有{/else}
#{/list}
#{/list}

谢谢帕拉科。是的,这是因为循环变量“taskDone”。我已经检查并修改了我的代码,如下所示:

<div class="task grid_24">
<div class="client grid_3">
Task/Client
</div>
#{list items:allClients, as: 'client' }
<div class="client grid_2">
${client.name} </div>
#{/list}
</div>


#{list items: allTasks, as: 'task'}
<div class="task grid_24">
    <div class="client grid_3">
        ${task.name}
    </div>

    #{list items:allClients, as: 'client' }
    %{
        i =0;
        }%
        <div class="client grid_2">
            #{list items:allTasksDone, as: 'taskDone'}

                #{if (taskDone.task == task && taskDone.client == client )}
                %{
                    i++;
                    }%
                #{/if}


            #{/list}
        <div class="taskStatus grid_2">
        #{if i>0}Done#{/if}
            #{else } Not yet#{/else}
        </div>
        </div>

    #{/list}
</div>
#{/list}

任务/客户端
#{列出项目:所有客户端,如:'client'}
${client.name}
#{/list}
#{列出项目:所有任务,如:“任务”}
${task.name}
#{列出项目:所有客户端,如:'client'}
%{
i=0;
}%
#{列出项目:allTasksDone,如:'taskDone'}
#{if(taskDone.task==task&&taskDone.client==client)}
%{
i++;
}%
#{/if}
#{/list}
#{if i>0}完成{/if}
#{else}还没有{/else}
#{/list}
#{/list}

根据文档,复合条件应该用括号括起来。我添加了括号作为“#{if(task.name==taskDone.task.name&&client.name==taskDone.client.name)}”,但仍然不起作用。您确定没有混淆包装#{list}循环的不同迭代的结果吗。在完成之前或尚未完成之前,请尝试打印${taskDone_index},并添加一个
以确保打印成功。根据文档,复合条件应该用括号括起来。我添加了括号作为“#{if(task.name==taskDone.task.name&&client.name==taskDone.client.name)}”,但仍然不起作用。您确定没有混淆包装#{list}循环的不同迭代的结果吗。在完成或尚未完成之前,请尝试打印${taskDone_index},并添加一个
以确保。