Как получить параметры в модели (в Grails)? params.
не существует в модели.Как получить параметры в модели?
0
A
ответ
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)
}
}
Существует несколько способов получить параметры http внутри объекта домена, но все они являются хаками. Как вы планируете использовать это и почему стандартные способы не работают для вас? –
Я просто хочу избежать передачи ВСЕХ параметров или КАЖДОГО, КОТОРУЮ НУЖНО вручную модели/модели домена. Проблема заключается в следующем: когда вы строите данные модели, вам часто нужны параметры, и обработка их в контроллере иногда раздражает (даже это правильно для структуры MVC). – Sliq
вы можете передать его как объект, вам не нужно передавать его. почему нет? –