Убедитесь, что расположение каждого класса соответствует объявлению класса и пакета.
Я создал домен класса
\ Grails-приложение \ домен \ Abc
Этот класс должен выглядеть следующим образом
class Abc {
// implementation omitted
}
убедитесь, что у вас нет объявления пакета, потому что в зависимости от местоположения этот класс должен быть в пакете по умолчанию (что на самом деле является плохой практикой). В идеале вы должны поместить этот класс в пакет, а затем переместить исходный файл в подкаталог \grails-app\domain
, соответствующий имени пакета.
Теперь я создал контроллер в
\ Grails-приложение \ Контроллеры \ MyApp \ myController
Этот класс должен выглядеть следующим образом
package myapp
class myController {
// implementation omitted
}
Обратите внимание, что этот класс должен называться в нижнем регистре 'm', потому что так называется файл. Стандартные соглашения о присвоении имен Java / Groovy требуют, чтобы классы начинались с заглавной буквы.
При этом, когда я создал объект, он показывает ошибку.
def Abc obj = new Abc
Есть несколько проблем с этим кодом:
- определить тип как
def
или
Abc
но не оба
- вам не хватает скобок
Попробуйте вместо этого:
Abc obj = new Abc()