在我的域类 com.example.users.User 中,我添加了瞬态字段:
[05-Nov-2016 14:26:29 UTC] PHP Fatal error: Allowed memory size of 262144 bytes exhausted (tried to allocate 989 bytes) in F:\SERVER\www\index.php on line 141
在我的gson视图中 user / _user.gson 我想渲染它:
class User implements Serializable {
...
def carnets
static transients = ['springSecurityService', 'carnets']
...
}
但我收到了:
引起:grails.views.ViewRenderException:呈现视图时出错:找不到名称/ carnet / index的模板
Carnet的观点gson文件是自动生成的,从CarnetController执行时效果很好。
我错过了什么?
答案 0 :(得分:2)
在我的用例(Grails 3.3.0)中,我不得不更改模板路径:
tmpl.'message/message'
至:
tmpl.'/message/message'
(添加前导斜杠)。
在开发中使用../
语法,但在将WAR文件部署到Tomcat时导致错误。请参阅:[https://github.com/grails/grails-views/issues/140]
答案 1 :(得分:0)
不幸的是,您需要使用当前.gson
文件中模板的相对路径。我想这个选项是来自views
文件夹的相对路径,但显然不是这样。
假设您的views
文件夹结构如下:
views/
carnet/
_index.gson
user/
_user.gson
在这种情况下,您的_user.gson
文件需要如下:
import com.example.users.User
model {
User user
}
json g.render(user, [excludes:['password', 'deleted', 'enabled', 'accountExpired', 'accountLocked', 'passwordExpired', 'authorities']]) {
"carnets" tmpl.'../carnet/index'(user.carnets)
}
TL; DR将tmpl.'/carnet/index'
更改为tmpl.'../carnet/index'
。 :)