問題タブ [content-negotiation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ContentNegotiatingViewResolver の作成中の BeanCreationException
Android アプリを、Web アプリケーションをホストしているサーバーと通信させようとしています。Web 側では、Spring を使用しており、すべて正常に機能していました。春などを使用してデータベースのデータを送信できましたが、現在、Androidアプリをサーバーと通信させようとしています。このために、私はこのチュートリアルに従いました: http://blog.trifork.com/2011/02/07/creating-an-android-app-for-your-website-with-spring-android-and-rest/
現在、Web ページを開こうとすると、多くの例外が発生します。(Android アプリから何かを送信する必要さえありません!)。springmvc-servlet.xml にいくつかのコードを書くまでは正常に動作していました
私はSpringが初めてなので、この例外を解決するのに苦労しています。これが私の sprinmvc-servlet.xml コードです (他のチュートリアルに従ってコードの一部を変更しましたが、使用した最初のチュートリアルのコードを使用すると、同じ例外が発生します)
例外は次のとおりです (たくさんありますが、恐れないでください! :D):
http-headers - 表現を抽象リソースにリンクするためのリンク関係タイプ?
私はコンテンツ ネゴシエーションを使用して、ユーザー エージェントがリソースの複数の表現から 1 つを選択できるようにします。
例: リソースhttp://example.com/essay
には次の表現があります。
text/html
→http://example.com/essay.html
application/xhtml+xml
→http://example.com/essay.xhtml
application/pdf
→http://example.com/essay.pdf
ユーザーエージェントが HTML バリアントを選択するとしましょう。これで、リンク リレーション タイプalternate
を使用して他の表現をリンクできます。
しかし、誰かが URI しか持っていない場合http://example.com/essay.html
、コンテンツ タイプ ニュートラル URI が であることをどうやって知ることができるでしょうhttp://example.com/essay
か。
「抽象的な」リソース ( ) に戻るリンクの種類はありhttp://example.com/essay
ますか?
リソースにはコンテンツタイプがないため、そのリンクにもalternate
リンク関係タイプを使用できません。
alternate
キーワードが属性とともに使用されている場合type
、参照されているドキュメントが指定された形式で現在のドキュメントを再構成したものであることを示します。
canonical
ここではリンク関係タイプは適切ではないと思います。場合によってはうまくいくかもしれませんが、HTMLバリアントを正規のものにしたいかもしれません(検索エンジンなどによるインデックス作成用)。私がhttp://example.com/essay
標準的なものを作成すると、検索エンジンは (原則として) 索引付けに PDF バリアントを使用できます。
spring-mvc - Spring MVC: 異なるアノテーション付きコントローラー メソッドに異なる JSON シリアライザーを適用する
注釈付きコントローラーとコンテンツ ネゴシエーション (@ResponceBody) を使用して REST サービスを作成しています。異なるユース ケースに対応する {{Foo}} のインスタンスを返す 2 つの異なるコントローラー メソッドがあり、{{Foo}} の JSON 表現をこれらのメソッドで異なるものにしたいと考えています。
例えば:
もちろん、DTO パターンを使用して、さまざまなメソッドでさまざまな DTO を返し (たとえば、それぞれ {{FooDTO1}} と {{FooDTO2}})、それらの DTO にさまざまな JSON シリアライザーを登録するだけです。しかし、適切な JSON シリアライザーを適用するためだけに、2 つの追加の DTO クラスを定義し、それらのクラスの使い捨てインスタンスを作成するのは間違っていると感じるので、より良い方法があるのではないかと思います。どのシリアライザーをどのケースに使用する必要があるか、SpringまたはJacksonに何らかのヒントを与えることはできませんか?
java - Spring MVC で Java モデルの RDF 表現を提供していますか?
Spring MVC を介して Java モデルの RDF 表現を提供するにはどうすればよいですか?
Spring のコンテンツ ネゴシエーション メカニズムを使用して動作する JSON および XML 表現があり、RDF についても同じことをしたいと考えています。
spring-mvc - ContentNegotiatingViewResolver で JasperReportsMultiFormatView を使用するには?
Spring の ContentNegotiatingViewResolver (Spring 3.2) で html、json、および xml が正常に動作しています。
jasperreports を使用して csv 出力を取得しようとしています。
Spring は .jrxml ファイルを見つけて解析できます。.csv URL を表示しようとすると、次のエラーが発生します。
これが私の webmvc-config.xml です (正しいですか?):
java - 異なる出力フォーマットを見たときのコンテンツ ネゴシエーション
私はSpring MVCでプログラミングの練習をしていたので、コンテンツネゴシエーションに関する例を作ることにしました。
私は uri "/products" から始めました:
- /products.json を要求すると、json が返されます。満足しています。
- /products.xml を要求すると、適切な xml が返されます。
- html ビュー (/products) を要求すると、現時点では製品の単純な html テーブルのみが表示されますが、タグ クラウドや同様の製品 (無関係なもの) などの html ページに追加の動的コンテンツを含めたい場合はどうでしょうか製品に)?
以下は、コントローラーメソッドの私のコードです。
私が達成したいことは次のとおりです。
- 私の単一のコントローラーメソッドを保持する方法ですが、htmlビューには余分なコンテンツがあります
私が持っていたアイデアは次のとおりです。
おそらく、サーブレット フィルターを使用して、text/html MIME タイプのみの ModelAndView を充実させますか? しかし、あなたは望ましくないかもしれないすべてのhtmlリクエストに対してこれを行っていますか?
現在、私が自分自身を説明している方法は、完全にレンダリングされた html ビューをクライアントに送信したいような気がします。おそらく、私はこの問題を間違って見ているので、JavaScript を介してページが読み込まれた後に余分なコンテンツを取得する方法を考えるべきでしょうか?
私の意図した解決策を達成することは可能ですか?他の部分は、私の意図したソリューションが実際に望ましいかどうかです:P
rest - WebSharper を使用したコンテンツ ネゴシエーション
WebSharper を使用して、コンテンツ ネゴシエーションをサポートする ReSTful API を構築できるかどうかを調査しています。Web API モデルに似たものをサポートすることを期待していました。これにより、コントローラーはリソースを返し、その後、要求の受け入れヘッダーに基づいて正しい表現に変換されます。ただし、ヘッダー情報は、リクエストをアクションにマップするルーターのみが利用できるようであり、コントローラーはアクションを何らかのコンテンツ (つまり表現) に変換する役割を果たします。これは、リソースの表現ごとに個別のアクションが必要になることを示唆しており、見苦しく感じます。
ここで何かが欠けていますか、それとも WebSharper は「MVC が正しく行われる」ことを意図しており、このユースケースを意図していませんか?