我目前正在开发一个 grails 应用程序,并且在遍历存储在域中的一些对象时遇到问题。您可以在下面看到域,我设置了一个模板,上面有 2 个选项。(选项 1,选项 2)
class Template {
String name
static hasMany = [options:Options]
static constraints = {
name blank: false
}
}
现在下面是我将这些数据传递给视图进行处理的控制器:
def create() {
def template = Template.get(1)
[systemInstance: new System(params), template: template]
}
最后,我在 GSP 上有了这段代码,它被认为是循环通过针对该数据存储的 2 个选项,然后如果检测到选项,我希望运行一些代码。但是,当我运行此代码时,我得到了奇怪的行为:
<%
System.out.println 'option is: ' + option
%>
<g:if test="${option == 'Option1'}">
<%
System.out.println 'Inside the IF'
%>
</g:if>
当我运行此代码时,如您所见,我使用 Print 语句来查看我正在使用的数据。我没有得到返回值 'Options1' 'Options2' 我得到以下信息:
option is: [
option is: O
option is: p
option is: t
option is: i
option is: o
option is: n
option is: 1
option is: ,
option is:
option is: O
option is: p
option is: t
option is: i
option is: o
option is: n
option is: 2
option is: ]
option is: )
我还测试了下面的代码,它返回'[Options1,Options2]':
<%
System.out.println 'option is: ' + template.options.name
%>
有人可以帮我解决这个问题,因为它很奇怪。提前致谢。
** *编辑* ****
for each 循环如下:
<g:each var="option" in="${ template.options.name })">
<%
System.out.println 'option is: ' + option
%>
<g:if test="${option == 'Option1'}">
<%
System.out.println 'Inside the IF'
%>
</g:if>
</g:each>