Grails/Groovy控制器应该将成功返回给ExtJS
我正在尝试这个简单的ExtJS-Grails/Groovy测试。我的Groovy服务器页面(gsp)文件包含以下ExtJS代码:Grails/Groovy控制器应该将成功返回给ExtJS,grails,extjs,Grails,Extjs,我正在尝试这个简单的ExtJS-Grails/Groovy测试。我的Groovy服务器页面(gsp)文件包含以下ExtJS代码: 它有两个字段“状态代码”和“状态名称” 用户输入详细信息并单击提交 Submit触发处理程序,该处理程序将表单进一步发布到控制器类 下面是带有操作/方法saveState的StateController类。 它只打印州代码,什么也不做 class StateController { static scaffold = true def saveState
- 它有两个字段“状态代码”和“状态名称”
- 用户输入详细信息并单击提交
- Submit触发处理程序,该处理程序将表单进一步发布到控制器类
下面是带有操作/方法saveState的StateController类。 它只打印州代码,什么也不做
class StateController {
static scaffold = true
def saveState = {
println "Into saveTender() method !!!"
println params.stateCode
// Steps to save the state code and name into Database.
}
}
问题:
- saveState方法正在打印两条println语句。然而,正如你所看到的,我没有归还任何东西,因为我不知道我应该归还什么给普惠制。我的目的只是保存状态详细信息,并抛出一个警告,说“状态已成功保存!”信息
- 但是,gsp中的Ext代码抛出了“State save Failed!”消息
我想把控制员的成功还给gsp。我该怎么做?请不要介意这个问题是否太幼稚,因为我是初学者。它失败了,因为您的闭包
saveState
将在默认情况下尝试呈现GSP,因为您不呈现或返回任何内容。如果您使用的是Grails2.x,那么声明操作的首选方式是方法,因此我使用的是方法而不是闭包
def saveState() {
State state = new State(stateCode: params.stateCode, stateName: params.stateName)
if(state.save()) {
render text: "State saved."
} else {
render text: "State fails: $state.errors"
}
}
您没有从“保存状态”返回任何内容。尝试返回类似JSON的
{
success: 'true',
message: 'State Saved'
}
您可以查找grails内置JSON转换器以返回更复杂的内容。谢谢Sergio。非常抱歉,没有再谈这个了。所以,我试着渲染文本。但是它在哪里呈现文本呢?假设我在问题中粘贴的Ext代码位于createState.gsp中,“状态已保存”是否会呈现在createState.gsp上(覆盖当前内容)?或者它会寻找一个名为saveState.gsp的gsp?而且。。。成功警报呢?当我尝试您提供的代码示例时,我没有看到失败警报。但我也没有看到成功警报!如果我的问题太天真,请再次道歉:(Ext将对消息“State Saved”执行某些操作)仅当您使用它时。例如,像JQuery ajax。渲染文本将避免使用gsp,因此您不必创建保存状态视图。如果您没有看到任何警报,请查看javascript是否失败。您可以在浏览器的错误控制台中查看。
render(contentType: "text/json") {
array = {
result "success": 'true',
"message": 'State Saved'
}
}
render(contentType: "text/json") {
array = {
result "success": 'true',
"message": 'State Saved'
}
}