如何让Grails不逃避CK编辑器生成的html标签

时间:2018-11-10 16:49:53

标签: grails ckeditor gsp

这个问题在2012年被问到并回答。不幸的是,Grails 3.3.8和Fields插件都没有答案。我尝试了$ {raw(value)}和我能找到的任何东西。它仍然显示 Hello world 之类的内容。建议在此处最新的Grails文档中使用$ {raw(value)}

我被困住了,不胜感激。

1 个答案:

答案 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之前,这很容易做到。