【问题标题】:Grails Web flow with Multiple domain具有多个域的 Grails Web 流
【发布时间】:2013-12-21 14:17:09
【问题描述】:

我是 Grails 开发的新手。我开始为用户注册做网络流程。它有两种形式,在第一种形式中,我获取基本详细信息,在第二种形式中获取银行详细信息。而且他们都将保存在不同的域中。

class Customer {

String Name
Integer Age
Date DateOfBirth
String FatherOrHusbandName  
String IdProof
String IdProofNumber
Boolean IsDeleted   

static hasOne = [bankdetail:BankDetails]

static hasMany = [property:Property]

static constraints = {
}}

银行详细信息

class BankDetails {

String bank_name
String account_number
String account_holder_name
String branch_name
String IFSC_code
String account_type

Customer customer   

static constraints = {
    customer unique:true
}

static mapping = {
    customer insertable: false
    customer updateable: false
}}

这两个域类用于客户。我从http://ridingthetiger.wikia.com/wiki/Creating_the_Example_Grails_WebFlow_Project 得到了很好的 Web 流实现教程。但是在本教程中只使用了一个域。我想要具有两个或更多域类的 grails webflow 示例。请提出是否有任何或举一个简单的例子....

提前致谢

【问题讨论】:

    标签: grails grails-orm spring-webflow grails-plugin grails-controller


    【解决方案1】:

    基本上,我所做的是创建两个命令对象并将它们传递给下一个和上一个。每个步骤一个。但在这种情况下,域对象很简单,您可以在流对象中传递它们。例如

    def createCustomerFlow = {
        basicInfo{
            on('next'){Customer cust ->
                flow.customer = cust
    
                if(!cust.validate()){
                    flow.errorbean = cust
                    return error()
                }else{
                    return success()
                }
            }.to 'bankInfo'
                on("cancel").to 'cancel'
        }
        bankInfo{
            on('finish'){BankDetails bank ->
                flow.bank = bank
    
                if(!bank.validate()){
                    flow.errorbean = bank
                    return error()
                }else{
                    try{
                        //create customer. Implement this method yourself
                        def cust = createCustomer(flow.customer, flow.bank)
    
                        flow.customer = cust
                    }catch(ValidationException e){
                        log.error("Validation exception", e)
                        flow.errorbean = e
                        return error()
                    }
                    return success()
                }
            }.to 'summary'
            on("previous"){BankDetails bank ->
                flow.bank = bank
            }.to 'basicInfo'
            on("cancel").to 'cancel'
        }
    }      
    

    【讨论】:

    • 这看起来很简单,操作多个域很清楚.. 非常感谢 unekwu...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-01
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多