这个问题在2012年被问到并回答。不幸的是,Grails 3.3.8和Fields插件都没有答案。我尝试了$ {raw(value)}和我能找到的任何东西。它仍然显示 Hello world 之类的内容。建议在此处最新的Grails文档中使用$ {raw(value)}
我被困住了,不胜感激。
答案 0 :(得分:0)
好的,这是一种方法: 首先,您需要Unbescape。将此添加到build.gradle:
编译“ org.unbescape:unbescape:1.1.6.RELEASE” //取消对HTML进行bescape
接下来,请执行create-tag-lib Unbescape。这是您的整个标签库类:
J <- 1:3
breaks <- rep(J, rev(J)) # [1] 1 1 1 2 2 3
y <- split(x, f = breaks)
names(y) <- paste0("x_sub", J)
list2env(y, envir = .GlobalEnv)
x_sub1
x_sub2
x_sub3
现在创建一个名为“ show”的目录,并在其中创建一个名为“ description”的目录。当然,这是在您的views目录中的特定域对象。描述是字段的名称。在目录“ description”中,创建一个名为_displayWidget.gsp的文件。该文件如下所示:
let answers = ["A","K","Q","J", "10","9","A","K","Q","J", "10","9","A","K","Q","J", "10","9","A","K","Q","J", "10","9"]
let side = []
for (let i=1; i<=5; i++){
let x= Math.ceil(Math.random()*answers.length);
side.push(answers[x])
answers = [...answers.slice(0,3), ...answers.slice(4)]
}
console.log(side)
在值上调用raw函数将返回一个org.grails.taglib.TagBodyClosure对象,该对象将传递给您的标签库。这就是为什么您必须对主体进行调用并将结果转换为标签lib中的String的原因。
如果知道如何执行,这很容易实现,但是找出执行方法并不容易。该文档不是很好。 Fields插件确实使事情变得非常复杂。在Fields之前,这很容易做到。