私はSpring MVCでプログラミングの練習をしていたので、コンテンツネゴシエーションに関する例を作ることにしました。
私は uri "/products" から始めました:
- /products.json を要求すると、json が返されます。満足しています。
- /products.xml を要求すると、適切な xml が返されます。
- html ビュー (/products) を要求すると、現時点では製品の単純な html テーブルのみが表示されますが、タグ クラウドや同様の製品 (無関係なもの) などの html ページに追加の動的コンテンツを含めたい場合はどうでしょうか製品に)?
以下は、コントローラーメソッドの私のコードです。
@RequestMapping(method = RequestMethod.GET)
public ModelAndView getAllProducts(){
ModelAndView result = new ModelAndView("index");
GenericListElementWrapper<Product> products = new GenericListElementWrapper<Product>();
products.setList(productDao.getAll());
ModelMap modelMap = new ModelMap();
modelMap.addAttribute("products",products);
result.addAllObjects(modelMap);
return result;
}
私が達成したいことは次のとおりです。
- 私の単一のコントローラーメソッドを保持する方法ですが、htmlビューには余分なコンテンツがあります
私が持っていたアイデアは次のとおりです。
おそらく、サーブレット フィルターを使用して、text/html MIME タイプのみの ModelAndView を充実させますか? しかし、あなたは望ましくないかもしれないすべてのhtmlリクエストに対してこれを行っていますか?
現在、私が自分自身を説明している方法は、完全にレンダリングされた html ビューをクライアントに送信したいような気がします。おそらく、私はこの問題を間違って見ているので、JavaScript を介してページが読み込まれた後に余分なコンテンツを取得する方法を考えるべきでしょうか?
私の意図した解決策を達成することは可能ですか?他の部分は、私の意図したソリューションが実際に望ましいかどうかです:P