2017-05-24 14 views
0

コントローラーを呼び出して通常のJavaファイルからビューを返すことができるかどうかを知りたい。例についてはコントローラーを通常のJavaクラスから呼び出すことができる

@Controller 
class ToBeInvokedController { 

    @RequestMapping(value="/invoke") 
    public String invokedMethod() { 
     return "view_name"; 
    } 
} 


class DemoJava{ 
    //Want to Invoke the method InvokedMethod() of ToBeInvokedController class and return the view_name 
} 
+0

でのネーミング・メソッドがそれをしようとすると、あなたはキャメルケース規則を使用することをお勧め

ToBeInvokedController.InvokedMethod(); 

経由で直接呼び出すことができ静的方法であったであろう場合見てください。 –

+0

これは他のJavaメソッドとまったく同じです。明らかにそれを呼び出すことができます。 –

+0

目的は何ですか?コントローラをテストするのですか? – Bnrdo

答えて

0

ちょうどそれのオブジェクトを作成し、通常の方法のようにそれを呼び出します。

同様:

class DemoJava{ 
    ToBeInvokedController c = new ToBeInvokedController(); 
    String s = c.InvokedMethod(); 
    System.out.print(s) 
} 
+0

しかし、それはその見方に戻るでしょうか?通常のコントローラの動作と同様に、RequestMapperであるメソッドが呼び出されるとJspが返されます。 – Nikhil

+0

'String'を返します。このメソッドで 'String'形式で' HTML'を手動で準備すると、そのフォームが返されます。 –

0

は、コントローラを起動し、通常のJavaファイルから ビューを返すことが可能であるかどうかを知りたいと思いました。

はい、それは非スタティックメソッドなのでToBeInvokedControllerクラスをインスタンス化する必要があります。

ToBeInvokedController obj = new ToBeInvokedController(); 
obj.InvokedMethod(); 

それはあなたが、私は強いのJava

+0

ありがとうございますが、コントローラーが正常なコントローラーの仕組みと同じように呼び出されたときにJspを返すようにしたいのですが、これは単なる例であり、ラクラキャッシングについて心配することはありません。 – Nikhil

+0

@NikhilコントローラはJSPを返すことはありません。コンフィグレーションXMLファイルで定義したViewResolverで解決される名前だけを返します。通常のコントローラはこのようにしか動作しません。 –

+0

ええ、私の悪い誤植は、私はinvokedMethod()がJSPを返すのか知りたかったのですか?上記のソリューションで!そして、返される特定のJSPファイルの設定はすでにtiles.xmlにあります。 – Nikhil

関連する問題