Grails将更改url呈现为​​索引

时间:2013-07-05 19:42:18

标签: url grails

我在我的控制器上有这个方法,它基本上验证并保存实体或呈现错误,如果有的话:

def initCreateProduct() {
    render view: "/admin/product/createProduct"
}

def createProduct(params) {
    def product = new Product(params)
    if (product.validate()) {
        flash.message = "product.createSuccess"
        product.save(failOnError: true);
        redirect action: "initCreateProduct"
    } else {
        render view: "/admin/product/createProduct", model: [product: product]
    }
}

如果验证成功,它的工作正常(浏览器中的URL是“product / initCreateProduct”,这没关系),但如果验证失败,我的URL将更改为“product / index”,这是错误的。我需要的是在两种情况下获得相同的URL(毕竟它是相同的页面)。提前谢谢。

更新:终于解决了。

问题是由我的gsp中使用引起的,它基本上将动作url更改为index,并将实际动作作为post-method参数发送。要在url中保存操作,我已经使用而不是

1 个答案:

答案 0 :(得分:0)

它正在执行控制器重定向,但无法解析URL。 IIRC,grails会将附加参数传递给索引方法以查找该操作。

如果你这样做,它就不会这样做:

if (product.validate()) {
        flash.message = "product.createSuccess"
        product.save(failOnError: true)
        initCreateProduct()
}