Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Grails 如何将gsp中的groovy模型理解为对象表示法。_Grails_Gsp - Fatal编程技术网

Grails 如何将gsp中的groovy模型理解为对象表示法。

Grails 如何将gsp中的groovy模型理解为对象表示法。,grails,gsp,Grails,Gsp,我正在处理一个grails项目,该项目的模型已传递到gsp页面。我可以轻松地运行模型的所有属性,并在gsp中填充我的字段。 我需要能够将模型的每个项存储在数据属性中,以便以后在我的JS文件中使用。 问题是知道如何将其存储为对象,以便稍后在JS中使用。 首先是我的html,我在其中循环浏览模型中的所有项 .gsp文件 <g:each var="item" in="${modelData}"> <option value="${item.sequence}" data-us

我正在处理一个grails项目,该项目的模型已传递到gsp页面。我可以轻松地运行模型的所有属性,并在gsp中填充我的字段。 我需要能够将模型的每个项存储在数据属性中,以便以后在我的JS文件中使用。 问题是知道如何将其存储为对象,以便稍后在JS中使用。 首先是我的html,我在其中循环浏览模型中的所有项

.gsp文件

<g:each var="item" in="${modelData}">
    <option value="${item.sequence}" data-user="${item.properties}"/>${item.name}</option>
</g:each>
如果我运行item.properties,我将获得

{name=my name, sequence=00345}
{name=your name, sequence=00155}
{name=his name, sequence=00678}
问题是如何获取它,以便它像对象一样存储在数据用户属性中

{name:my name, sequence:00345}
{name:your name, sequence:00155}
{name:his name, sequence:00678}
我是grails新手,所以并不完全是groovy专家。我也没有在控制器或模型中编写代码,所以我不确定将模型传递给gsp是最佳实践还是将其传递给JSON更好。 编写控制器的人告诉我,当他们可以将模型传递给视图时,传递JSON是愚蠢的。我对此有点怀疑。但我想看看在这种情况下,哪种做法是最好的


有没有办法将此模型转换为正确的表示法以存储在我的数据属性中,供以后在JS中使用。

您可以使用
${new grails.converters.JSON(item).toString(false).encodeAsHTML()}
,但它将包含一些额外的属性(id,class),除非您对其进行调整,否则可能不需要这些属性(例如,注册您自己的数据封送员)。谢谢您,Gregor,这正是我想要的。如果您经常需要这样做,我建议您编写一个很好的标记库:)只提到这一点,因为您编写的代码是Grails的新手,但它非常容易做到,而且会使GSP更短、更干净。
{name:my name, sequence:00345}
{name:your name, sequence:00155}
{name:his name, sequence:00678}