gpt4 book ai didi

grails - grails 如何将参数传递给 Controller ​​方法?

转载 作者:行者123 更新时间:2023-12-04 22:12:30 25 4
gpt4 key购买 nike

在 grails Controller 示例中,我看到了 save(Model modelInstance) 和 save()。我两个都试过了,都有效。我想象 grails 用参数实例化了 modelInstance。我的假设正确吗?

我还注意到在 index(Integer max) 中,参数是否必须命名为 max?或者任何名称都可以,只要它是一个数字?

这些参数的传递在下面是如何工作的?

最佳答案

如果你写一个这样的 Controller ......

class MyController {
def actionOne() {
// your code here
}

def actionTwo(int max) {
// your code here
}

def actionThree(SomeCommandObject co) {
// your code here
}
}

Grails 编译器将把它变成这样的东西(不完全是这个,但这有效地描述了正在发生的事情,我认为它可以解决你的问题)......
class MyController {
def actionOne() {
// Grails adds some code here to
// do some stuff that the framework needs

// your code here
}

// Grails generates this method...
def actionTwo() {
// the parameter doesn't have to be called
// "max", it could be anything.
int max = params.int('max')
actionTwo(max)
}

def actionTwo(int max) {
// Grails adds some code here to
// do some stuff that the framework needs

// your code here
}

// Grails generates this method...
def actionThree() {
def co = new SomeCommandObject()
bindData co, params
co.validate()
actionThree(co)
}

def actionThree(SomeCommandObject co) {
// Grails adds some code here to
// do some stuff that the framework needs

// your code here
}
}

还有其他事情要做,比如强加 allowedMethods 检查、强加错误处理等。

我希望这有帮助。

关于grails - grails 如何将参数传递给 Controller ​​方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23511688/

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