gpt4 book ai didi

javascript - 从JavaScript V.S GSP调用Grails操作

转载 作者:行者123 更新时间:2023-12-02 15:33:43 24 4
gpt4 key购买 nike

我在 Controller 中有 Action

def deleteFiling={
obj.removeFiling()
redirect(action:"list")

}

称为gsp:
<g:link action="deleteFiling" id="${filingInstance.id}"> <img src="${resource(dir:'images',file:'trash.gif')}" title="Delete" />

并执行数据库查询,然后使用成功消息重定向到主页。

因此,我需要gsp调用一个不同的操作,该操作执行一些JavaScript工作,例如弹出确认消息,一旦完成,它将调用该操作deleteFiling并执行它。

所以我在extjs中做这样的事情:
Ext.MessageBox.show({
title:'Commit Confirmation',
msg: 'You are about to <strong>Delete</strong> the entire <strong>Filing</strong>. This \n action cannot be reversed within the form PF application. \n\nAre you sure you want to Proceed',
buttons: Ext.MessageBox.YESNO,
fn: processDelete,
icon: Ext.MessageBox.QUESTION
});
function processDelete(btn, text){
$.ajax({
url : appContextRoot + '/filing/deleteFiling'
//success:mySuccessFunction
});
}

我遇到的问题是当我通过ajax调用调用操作时,查询被执行,但是重定向不执行

但是当我直接从gsp调用操作时,重定向有效。
我的问题是,使用java脚本中的ajax调用来调用 Action 与直接从gsp中调用它之间有什么区别?

最佳答案

在您的GSP标记中,您不会使用ajax来调用它。这是对您的操作的直接GET请求。这意味着整个页面都会刷新。
当您使用ajax调用 Action 时, Action 的响应将呈现为一个对象。
然后,您可以通过使用Javascript操作DOM来显示操作的结果(在您的情况下为其他操作-列表操作)。

当然,您可以使用不带ajax的javascript调用操作:

function processDelete(btn, text){
loacation.href="${createLink(action: 'deleteFiling')}";
}

关于javascript - 从JavaScript V.S GSP调用Grails操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15176809/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com