Spring 3.1 で同じコードを正常に実行していました。3.2 にアップグレードしたところ、次の問題が発生しました。
<form:form id="customerLoginForm" commandName="customerLoginForm" action="/login" name="">
3.1 の下では、次の HTML が生成されます。
<form id="customerLoginForm" action="/login" method="post">
生成されるようになりました:
<form id="customerLoginForm" action="/webapp/login" method="post">
ここで、「webapp」は、webapp の Websphere 内のコンテキスト パスです。
上記の例では、/login への GET 要求は成功しますが、不適切なフォーム action="/webapp/login" を返します (フォームは POST を同じ URL に送信します)。そのため、フォームが送信されると、404 の不正な URL エラーが発生します。
3.2で何か変わった?Spring にコンテキストパスを無視するように指示する場所はありますか? すべての絶対パスを相対パス (例: "/login" ではなく "login") に変更することもできますが、webapp には 20 以上のフォームがあるため、変更しないことをお勧めします。