2010-12-10 14 views
0

これを行うと問題が発生します。Springでコントローラーのページをレンダリングする際に問題が発生する

@RequestMapping("/folder/{name}.jsp") 
public ModelAndView catchAll(@PathVariable String viewName) { 
    return new ModelAndView("legacy/" + viewName); 
} 

それは

レガシー/ 123.jspが利用できないことをブラウザ上でエラーを与える

私はリストを持っている場合、私は、この問題

を解決するにはどうすればよいですidの

私はこの/ legacy/1/legacyのようなブラウザを表示したい/ 2などですので、春にどのようにプログラムできますか?

+0

戻ってくるコンテキストルートについて考えてみましょう。そのリソースへの完全な経路は何ですか? –

答えて

0

あなたは、存在しないjspページをレンダリングするようにSpringに指示しています。 jspの名前が "legacy.jsp"の場合、それはレンダリングしたビューで、パラメータに基づいて別のオブジェクトをビューに渡すだけです。あなたはlegacy/123は123のIDでレガシーオブジェクトを表示します「legacy.jsp」にお連れしたい場合はこのようにそれを行う、そして:

@RequestMapping("/legacy/{id}") 
public ModelAndView catchAll(@PathVariable("id") String id) { 
    Legacy legacy = // Get the object from your database using the id 
    return new ModelAndView("legacy", "legacy", legacy); // insert the legacy object into your view, it will be accessed by the name "legacy" 
} 

だから、この方法は、URL「/レガシーを入力してください/ 123 "をクリックして(またはそのリンクをクリックして)、123を使ってフェッチしたオブジェクトにlegacy.jspをレンダリングするだけです。

2

JSPを配置するディレクトリのサブディレクトリlegacyに123.jspを入れる必要があります。

しかし、私はあなたが望むものではないと思う:あなたは転送の何かを構築したいと思います。この場合、リダイレクトビューを返す必要があります。

@RequestMapping("/folder/{name}.jsp") 
public ModelAndView catchAll(@PathVariable String viewName) { 
    return new ModelAndView(new RedirectView("legacy/" + viewName + ".jsp")); 
} 
+0

私はリストを持っているので、id/abの調整が – aditya

+0

になってしまいました。あなたのコメントが分かりませんでしたか?それは質問ですか、あなたの質問の詳細なのでしょうか、それがうまくいっているか? – Ralph

+0

jspページsay.jspがあるので、springを介してview.htmとしてレンダリングされますが、これは問題ありませんが、今ではリストを渡したいので、リストの指定されたIDに応じてビュー.htmはview.htm/{id}に変更されますが、100データがある場合は100 JSPページが必要ですか?どのように私は春を介してこれを解決することができます – aditya

関連する問題