如何从以前的表单字段中获取值?

时间:2011-12-28 03:56:56

标签: forms grails groovy grails-controller

我有两种形式,特别是名为UserCompany的类。在User表单中,当用户发现他/她自己的公司不在DB中时,他/她将创建一个新的Company。我已将save控制器的Company操作更改为以下内容:

def save() { 
        def companyInstance = new Company(params)
        if (!companyInstance.save(flush: true)) {
            render(view: "create", model: [companyInstance: companyInstance])
            return
        }

        flash.message = message(code: 'default.created.message', args: [message(code: 'company.label', default: 'Company'), companyInstance.id])
        redirect(controller:"user", action:"create")
    }

这是在保存新公司后,我正在重定向到User的{​​{1}}行动。但是它运行得很好,已经输入某些值的用户(即在进入create的{​​{1}}操作之前)已在Company表单字段中丢失。

如何在create字段中检索值?

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用Webflows实现此目的。 Webflow是一个表单列表,一个接一个地保持它们之间的状态。这样,您可以稍后返回“用户”表单,而不会丢失输入的值。 Webflow并不容易 - 它适用于半高级用户。

答案 1 :(得分:1)

如果您在创建公司之前坚持使用,则可以在公司表单上创建一个包含用户ID的隐藏字段。如果您希望在收集所有数据之前推迟创建用户,则可以将所有用户信息存储在公司表单中。

否则你必须像Tomasz建议的那样,使用Webflows