我已经修改了某些Grails Controller
的默认URL映射:
BankRemittanceController.groovy
class BankRemittanceController{
def view(String bankCode, String refNo) {
...
}
}
UrlMappings.groovy
class UrlMappings {
...
/*
* Will accomodate the following URLs
*
* /project/remittance/bank/
* /project/remittance/bank/hsbc/
* /project/remittance/bank/hsbc/8959-87s-777-EI-02
*/
"/remittance/bank/$bankCode?/$refNo?"{
controller={"bankRemittance"}
action=[GET:"show"]
}
...
}
而且我已经测试了这些URL,并且可以正常工作。问题是,当我尝试在
.gsp
上动态生成URL字符串时,它将改为生成默认URL:<script>
var redirectURL = "${g.createLink(controller: "remittance", action: "view")}"
// The URL generated here is still:
// /project/bankRemittance/view
//
// instead of the mapped URL in UrlMappings.groovy:
// /project/remittance/bank
//
</script>
如何生成预期的URL字符串?
最佳答案
我不明白为什么在映射中您将不存在的 Action 称为“show”。
我将其更改为:action = [GET:“view”]
如果您预期的网址是:/ project / remittance / bank,
您可以使用:$ {g.createLink(controller:“remittance”,action:“bank”)}
或:$ {g.createLink(uri:“/汇款/银行”)}