gpt4 book ai didi

java - 如何在 list 中多次检入GSP Grails

转载 作者:行者123 更新时间:2023-12-02 16:03:22 25 4
gpt4 key购买 nike

我想在GSP页面中进行检查。我有一个产品 list 。该列表包含约21种产品。我使用g:each在GSP和if / else中循环检查产品。请参阅下面的代码。但是如果product.id不等于3,则该页面显示/打印“dontCallMe”复选框21次,我希望将其打印一次。这是为什么?还有其他检查方法吗?谢谢

     <g:each in="${products}" var = "product">
<g:if test="${product.id == '3'}">
<tr>
<td>
<g:checkBox name="callMe" checked="true"
value=""/>&nbsp; Call me
</td>
</tr>
</g:if>
<g:else>
<tr>
<td>
<g:checkBox name="callMe" checked="false"
value=""/>&nbsp; Call me
</td>
</tr>
</g:else>
<g:if test="${product.id == '4'}">
<tr>
<td>
<g:checkBox name="callMeAgain" checked="true"
value=""/>&nbsp; Call me again
</td>
</tr>
</g:if>
<g:else>
<tr>
<td>
<g:checkBox name="callMeAgain" checked="false"
value=""/>&nbsp; Call me again
</td>
</tr>
</g:else>
<g:if test="${product.id == '5'}">
<tr>
<td>
<g:checkBox name="dontCallMeAgain" checked="true"
value=""/>&nbsp; Dont call me again
</td>
</tr>
</g:if>
<g:else>
<tr>
<td>
<g:checkBox name="dontCallMeAgain" checked="false"
value=""/>&nbsp; Dont call me again
</td>
</tr>
</g:else>
</g:each>

最佳答案

如果您有21种产品,并且dontCallMe出现21次,则表明您的情况始终为假。
我要做的是打开debugger中的代码,并验证对象是否具有期望的值和期望的类型。

如果您不使用调试器,请添加新的<td>

<td>
`${product.id}`
</td>

另外,如果您没有调试器,请尝试以下操作(我自己尚未尝试过):
<td>
`${product.id?.getClass()}`
</td>

使用调试代码简化

最后,代码可以简化如下(请原谅错字):
<g:each in="${products}" var = "product">
<tr>
<td>
<g:checkBox name="${product.id == '3' ? 'CallMe' : 'DontCallMe'}"
checked="${product.id == '3' ? 'true' : 'false'}"
value=""/>${product.id == '3' ? 'CallMe' : 'DontCallMe'}"
</td>
<td>
DEBUG: ${product.id} <br/>
DEBUG: ${product.id?.getClass()} <br/>
</td>
</tr>
</g:each>

关于java - 如何在 list 中多次检入GSP Grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27886616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com