1

Spring MVC 3.0 を使用して、AJAX トランザクションのインターフェースを構築したいと考えています。結果が JSON として返されることを望んでいますが、必ずしも Web ページを JSP で構築する必要はありません。コントローラーへのリクエストが DispatcherServlet を介して傍受/ルーティングされ、プロジェクトの残りの部分が Spring 統合なしで通常の Java webapp のように機能し続けることだけが必要です。

私の考えは、web.xml でサーブレット マッピングの URL パターンを「/controller/*」のようなものとして定義し、コントローラーのクラス レベル @RequestMapping を @RequestMapping("/controller/colors") のようなものにすることでした。 、そして最後にメソッドレベルで、 @RequestMapping(value = "/controller/colors/{name}", method = RequestMethod.GET) を持っています。

唯一の問題は、すべての RequestMappings に「/controller」を追加し続ける必要があるかどうかわからないことです。どの組み合わせを試しても、404 要求されたリソースが利用できないというエラーが発生し続けます。

ここでの最終的な目標は、Web ブラウザーに「http://localhost:8080/myproject/controller/colors/red」と入力して、RGB 値を JSON 文字列として取得できるようにすることです。

4

2 に答える 2

2

パス全体をどこにでも追加する必要があるというのは正しくありません。パスは累積的です-

SpringのDispatcherServletのサーブレットマッピングがある場合、への/controller/*呼び出しはすべてDispatcherServlet/controller/*によって処理されるようになります。の残りのパス情報を処理するだけで@RequestMapping、コントローラを次のようにすることができます。

@Controller
@RequestMapping("/colors")
public class MyController{

 @RequestMapping("/{name} 
 public String myMappedMethod(@PathVariable("name") String name, ..){
 }

}

したがって、このメソッドは、/controller/colors/blueetcへの呼び出しによって処理されます。

于 2012-10-18T15:23:15.547 に答える
1

必ずしも Web ページを JSP で構築したくない

Spring MVC は、パススルーから生の html、Velocity や Freemarker などの豊富なテンプレート エンジンまで、多くのビュー テンプレート統合オプションを提供します。おそらく、それらのオプションの 1 つが探しているものに合うでしょう。

于 2012-10-18T15:15:46.617 に答える