шаблоны Grails - контроллер лесов - PullRequest
0 голосов
/ 26 марта 2012

Я новичок на Граале. Сейчас я работаю над моими шаблонами скаффолдинга, особенно над моими контроллерами. Я хотел настраиваемый контроллер каждый раз, когда я генерировал его, поэтому я использовал «install-templates». Я всегда создаю объект Command на контроллерах, возможно ли включить поля из моего класса домена в мой объект команды в моем сгенерированном контроллере? Я знаю, что должен делать это в шаблонах контроллеров, но я не знаю, как его кодировать, или если это вообще возможно. Поэтому каждый раз, когда я использую generate-controllers, поля в объекте Command уже установлены.

${className}Command implements java.io.Serializable{

    constraints = {}

} 

и, например, мой класс Domain выглядит так:

class Person{

String name
int age
double height
}    

Я хочу, чтобы он автоматически генерировал поля моего класса домена в объекте Command на моем сгенерированном контроллере путем редактирования шаблона контроллера. Является ли это возможным? спасибо, что поделились своими знаниями.

Ответы [ 2 ]

1 голос
/ 27 марта 2012

Интересный вопрос - зачем вам нужен объект команды?Таким образом, вы нарушаете принцип сухости.

Поскольку вы только начинаете с грааля, вам следует просто попытаться использовать грааль по назначению, а не пытаться улучшить его.* Как только вы создадите свой первый полнофункциональный проект grails, вы увидите всю прелесть дизайна grails - без необходимости неявных командных объектов :-) - или выберете другую платформу

1 голос
/ 26 марта 2012
Шаблоны

edit.gsp, show.gsp и list.gsp имеют логику для создания полей на основе класса домена, вы можете увидеть, как это делается.

По сути, когда вы включаете в шаблон groovy код, вы можете получить доступ к классу домена с помощью переменной domainClass, а затем вы можете распечатать объявления свойств, перебирая массив, возвращаемый getProperties(), как это:

<%
    domainClass.properties.each {
        println "    ${it.type} ${it.name}"
    }
%>
...