我已经写了使用Grails 2.5.0的例子。 这个例子使用GSP模板呈现在AJAX调用改变价格,看下面的详细信息。
创建一个名为_price.gsp一个GSP模板
模板是一个GSP文件必须以下划线开始,不具备HTML和BODY标签。 在这种情况下,GSP仅仅是下面的代码:
15 ${price}
16 ${price}
17 ${price}
创建一个名为ajaxSize.gsp GSP
这是主要的GSP,是一个完整的HTML文件。
请注意,这GSP包括使用克_price.gsp模板:呈现标签库。
同样重要的是要注意,我把G:渲染内部DIV叫updateMe。 这就是克DIV:setPrice方法与回报remoteFunction更新(渲染)。
2x2
4x4
$(document).ready(function(){
$("input[name*='size']").click(function() {
${remoteFunction(
controller:'test',
action:'setPrice',
update: "updateMe",
params:'\'size=\' + this.value')}
})
});
创建一个名为TestController.groovy控制器
当模板被渲染你不需要把下划线的名称前面。 你刚才写模板的名称,没有下划线,请参阅setPrice渲染调用下面。
class TestController {
def index() {}
def ajaxSize() {
return
}
def setPrice() {
def price
if (params.size=="2x2")
price = "100"
if (params.size=="4x4")
price = "200"
render template: "price", model: [price:price]
}
}
测试解决方案
HTTP://本地主机:8080 /对myApp /测试/ ajaxSize
当ajaxSize动作被称为ajaxSize.gsp的内容呈现。 之后,在任何单选按钮点击(名称=“大小”)将生成一个Ajax调用动作setPrice。 这一行动将收到的单选按钮是点击,将呈现_price.gsp模板发送的模型计算出的价格值。