Grails 2.4.3を使用しています。すべてのドメインクラスで使用できるいくつかの標準メソッドを含む動的抽象ドメインクラスコントローラを作成しようとしています。動的抽象Grailsコントローラ
だから私は今、私はDomainClasscontroller
を拡張BarController
をしたいDomainClassController
abstract class DomainClassController {
def domainClassSearchService
def domainClass = Foo
ApplicationContext context = ServletContextHolder.servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT) as ApplicationContext
ConfigObject config = context.getBean(GrailsApplication).config
def index() {
if (!domainClass)
return render(text: 'fehler', status: INTERNAL_SERVER_ERROR)
def list = domainClassSearchService.list(params, domainClass, params.max, params.offset, params.sort, params.order)
Integer count = domainClassSearchService.count(params, domainClass)
render view: 'index', model: [list: list, count: count]
}
def search() {
if (!domainClass)
return render(text: 'fehler', status: INTERNAL_SERVER_ERROR)
def list = domainClassSearchService.list(params, domainClass, params.max, params.offset, params.sort, params.order)
Integer count = domainClassSearchService.count(params, domainClass)
render template: 'list', model: [list: list, count: count, params: params]
}
}
を作成しました:
私は抽象コントローラがためにそれを使用することができ、各コントローラにdomainClassを設定するにはどうすればよいclass BarController extends DomainClassController {
def domainClass = Bar
}
インデックスと検索方法?それが仕事を得るために答えで説明しているように私はそれをやった
EDIT
。 しかし、今、私は私がこれを追加してメソッドの動的に作成したい:
def create(){
def domainClassObject = getDomainClass()?.newInstance()
domainClassObject.properties = params
return render(view: getViewPath() + 'create', model: [domainClass: domainClassObject])
}
自体でも、この作品が、私はGSPプロパティdomainClass
に使用したくありません。下のCasでクラス名を使用したいので、f.e.ビュー内のクラスBar
の場合はクラスFoo
の場合はfoo
、bar
の場合
lowerCaseのClassNameにモデル名を設定するにはどうすればよいですか?
プロパティの代わりに、抽象メソッドを使用できます。 –
あなたの問題とは関係なく、 'ApplicationContext context = ServletContextHolder.servletContext.getAttribute(GrailsApplicationAttributes.APPLICATION_CONTEXT)の代わりにApplicationContext'と' ConfigObject config = context.getBean(GrailsApplication).config'を使用すると、 'GrailsConfigurationAware'と'setConfiguration'メソッドで' config'プロパティを初期化します。あなたの例は 'config'を使用していないので、どうしてもそれが必要な理由が明確ではありません。 –