2013-02-20 11 views
0

Как получить параметры в модели (в Grails)? params. не существует в модели.Как получить параметры в модели?

+0

Существует несколько способов получить параметры http внутри объекта домена, но все они являются хаками. Как вы планируете использовать это и почему стандартные способы не работают для вас? –

+0

Я просто хочу избежать передачи ВСЕХ параметров или КАЖДОГО, КОТОРУЮ НУЖНО вручную модели/модели домена. Проблема заключается в следующем: когда вы строите данные модели, вам часто нужны параметры, и обработка их в контроллере иногда раздражает (даже это правильно для структуры MVC). – Sliq

+0

вы можете передать его как объект, вам не нужно передавать его. почему нет? –

ответ

4

Если «Модель» означает класс модели домена, у них нет параметров, они просто POJO. Насколько я знаю, паромы применимы только к контроллерам.

0

Как я понимаю, у вас есть специальный метод заполнения домена из запроса. В этом случае вы могли бы пройти все Params (это карта) к такому методу, как:

def MyDomain { 

    static MyDomain buildFromParams(def params) { 
    return new MyDomain(
     field1: params.field_1, //assuming that your params have different naming scheme so you can't use standard way suggested by Raphael 
     field2: params.field_2 
    ) 
    } 

} 

class MyController { 

    def myAction() { 
    MyDomain foo = MyDomain.buildFromParams(params) 
    } 

} 
0

Если имена параметров propertly отформатированный и соответствуют атрибуты домена, вы можете сделать это:

Предполагая

params = [name:"some name", age: "194", civilState: "MARRIED"] 

и

class Person{ 
    String name 
    Integer age 
    CivilStatus civilState //some enum 
} 

Вы можете использовать свойство связывания constructo в Groovy r как это в контроллере:

class Controller { 
    def saveAction = { 
     new Person(params) 
    } 
} 

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

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