Playframework 如何在Play的模板中访问超出页面范围的模型!框架

Playframework 如何在Play的模板中访问超出页面范围的模型!框架,playframework,playframework-1.x,Playframework,Playframework 1.x,在游戏中!模板我试图访问一些模型,就像我在使用bean的JSP中所做的那样,模板识别模型类,但当我试图访问模型属性时,它抱怨错误:“MissingPropertyException:没有这样的属性” 在我的模板中: ${fulllyQualifyName.myModel}(未从控制器传递的模型) 第页上的输出:fulllyQualifyName.class ${fulllyQualifyName.myModel.propertyA}(尝试获取propertyA) 第页的输出:MissingPro

在游戏中!模板我试图访问一些模型,就像我在使用bean的JSP中所做的那样,模板识别模型类,但当我试图访问模型属性时,它抱怨错误:“MissingPropertyException:没有这样的属性”

在我的模板中:

${fulllyQualifyName.myModel}(未从控制器传递的模型)

第页上的输出:fulllyQualifyName.class

${fulllyQualifyName.myModel.propertyA}(尝试获取propertyA)

第页的输出:MissingPropertyException:无此类属性:类的propertyA:fulllyQualifyName.myModel可能的解决方案:id

我在myModel中将这个属性设置为属性

我是否应该首先在模板中包含/导入模型类?如果是的话,我该怎么做?
谢谢大家!

如果您想访问视图中的模型,只需在控制器渲染方法中传递它们即可

render(model1,model2...)
然后你可以用

${fullyQualifyName.model1.propertyA} 

${fullyQualifyName.model2.propertyB}

另请参见:

实际上,您可以访问视图文件中的任何包。试试看:

${models.ModelClassName.find('queryStr').fetch()}
通过此方法,可以使用模型超类提供的所有find()方法,如中所述

例如,如果我想在不调用控制器渲染方法的情况下检索用户列表:

#{list items:models.User.findAll(), as:'user'}
    user name: ${user.name}
#{/list}
要按id检索特定用户,请执行以下操作:

${models.User.findById(userId)}
…或通过其自身的财产:

${models.User.find('byEmail', 'john@gmail.com').first()}
如果希望在多个位置使用检索到的模型,可以尝试以下方法:

%{
  users = models.User.findAll();
}%

<span>there are ${users.size()} user(s) </span>
<ul>
  #{list items:users, as:'user'}
    <li>${user.name}</li>
  #{/list}
</ul>
...
%{
users=models.User.findAll();
}%
有${users.size()}个用户
    #{列出项目:用户,如:'user'}
  • ${user.name}
  • #{/list}
...

我希望这能有所帮助。

感谢您的回复,但在本例中,我使用了renderJSON(某种东西),因此我不知道如何传递另一个实例。有什么想法吗?谢谢。为什么要传递json并使用播放模板?模板中的javascript使用json输出,而我也需要显示模型中的其他信息。谢谢我不是100%肯定,但我认为你必须有两个不同的控制器,一个用于renderJson(),另一个用于模板。我想使用JSON的是Ajax调用。是的,这就是我现在正在做的。我仍然需要显示json文档之后的其他信息,而不是静态属性。我的问题与此类似,但我使用的是Play 1.2.4: