コントローラのメソッドに対して次の@RequestMappingを定義しています。
@RequestMapping(value = "{transactionId}/continue", params = "submitButton=enterApplication")
JSPでは、次のボタンを定義しています。
<button type="submit" name="submitButton" id="button.enterApplication" value="enterApplication">
Enter Application
</button>
最新のブラウザではすべてが正常に機能します。リクエストでは、次のものが送信されます。
submitButton=enterApplication
しかし、IE7(おそらく以前も)では、ブラウザーはvalue属性の代わりにbuttonタグのコンテンツを送信しているように見えます。したがって、この場合、次のように送信されます。
submitButton=Enter+Application
スペースの代わりに「+」記号に注意してください(Fiddlerを使用して、リクエストを検査し、上記のパラメーター/値に「+」が含まれていることを確認しました)。これが私の問題の原因であると確信していますが、どうしたらよいかわかりません。次の@RequestMappingを使用して別のメソッドを追加しようとしました。
@RequestMapping(value = "{transactionId}/continue", params = "submitButton=Enter+Application")
しかし、これはうまくいかないようです。次のエラーが引き続き発生します。
javax.servlet.ServletException: No adapter for handler [...]: Does your handler implement a supported interface like Controller?
リクエストで送信されているものを@RequestMappingで定義されたパラメーターと比較するために、Springが実行しているロジックを判別する方法はありますか?スペースまたは「+」文字の比較に問題があるはずだと思います。
*注:問題は必ずしもプラス文字であるとは限りません-それは私の最初の考えでした。Springがハンドラーをどのように決定するかを理解できれば、なぜそれが一致しないのかを理解できるかもしれません。