1

Grails では、サービスはデフォルトでシングルトンです。このままにして、コントローラーからそのサービスの内部クラスのインスタンスを作成できますか?

//by default grails makes MyTestService a singlton
class MyTestService{

     public class InnerTest{
          String msg;
          def addMsg(String str){
               this.msg=str;
          }
          def printMsg(){
             println this.msg;
         }
     }

}

コントローラー「MyController」で...

def m=myTestService.getInstance().new InnerTest();
//produces " MyTestService.InnerTest cannot be cast to MyTestService.InnerTest"

 def m=myTestService.new InnerTest();
//No signature of method:MyController.InnerTest() 
4

1 に答える 1

1

次のようなことができるはずです。

class MyTestService{

     public class InnerTest{
          String msg;
          def addMsg(String str){
               this.msg=str;
          }
          def printMsg(){
             println this.msg;
         }
     }

     def InnerTestFactory() {
        new InnerTest()
     }

}

そして、コントローラーから使用します:

def m=myTestService.InnerTestFactory();
于 2015-04-17T00:07:20.857 に答える