0

Я новичок в разработке Grails. Я начал выполнять веб-поток для регистрации пользователя. Он имеет две формы: в первой форме я получаю основные данные и получаю реквизиты банка во втором. И оба они собираются сохранять в разных доменах.Веб-поток 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. Но в этом учебнике используется только один домен. Я хочу, чтобы пример веб-потока grails состоял из двух или более классов домена. Пожалуйста, предложите, если есть какие-либо или дать один простой пример ....

Заранее спасибо

ответ

2

В общем, что я могу сделать, это создать два объекта команды и передать их вокруг через следующий и предыдущий. Один для каждого шага. Но в этом случае объекты домена просты, вы можете просто передать их в объект потока. например

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' 
    } 
}  
+1

Это выглядит очень просто и манипуляция множественный домен понятно .. спасибо unekwu ... – Prasath

+0

Если это работает, вы должны принять ответ. – unekwu

 Смежные вопросы

  • Нет связанных вопросов^_^