0

私は Spring mvc 4 と glassfish 4 を使用していますが、@ResponseBody を使用してオブジェクトを json として返す ajax 呼び出しに問題がありました。次に、適切な解決策HTTP Status 406 を見つけました。Spring MVC 4.0、jQuery、JSONは、私のプロジェクトでは完全には機能しなかったと思います。

私のサーブレットマッピングは次のとおりです。

   <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>*.htm</url-pattern>
    </servlet-mapping>

しかし、406 http コードの問題を回避するために /* のようなリクエストも提供したいので、これを試しました。

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/*</url-pattern>
    </servlet-mapping>

しかし、ディスパッチャーも *.jsp をマップして中断します。最後に、私はこれを試しました:

    <servlet-mapping>
        <servlet-name>dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

しかし、ディスパッチャーは *.js と *.css をブートストラップ、jquery などのようにマップします。

そして今、私はアイデアを使い果たしました。

4

1 に答える 1

0

最後に私はそれを修正します。一方の側で 406 http コードの問題を修正するには、ajax からコンテンツ タイプを指定し、コントローラーから *.htm を削除します。

もう一方の側では、さらに問題が発生しないように、サーブレット マッピングを修正し、リソース タグを追加する必要がありました。

今、私のサーブレットマッピングは次のようになっています:

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

そして、次の行をディスパッチャ サーブレットに追加します。

<bean id="viewResolver"
          class="org.springframework.web.servlet.view.InternalResourceViewResolver"
          p:prefix="/WEB-INF/jsp/"
          p:suffix=".jsp" />

<mvc:resources mapping="/resources/**" location="/resources/" />
于 2014-10-28T23:02:07.360 に答える