1

在 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 bad URL 错误。

3.2有什么变化吗?有什么地方可以告诉 Spring 忽略上下文路径吗?我可以回去将所有绝对路径更改为相对路径(例如,“login”而不是“/login”),但我不希望这样做,因为我的 webapp 中有 20 多个表单。

4

1 回答 1

5

抱歉,这不是错误,而是新功能。请看这个jira:如果不存在,Form 标签应该在 contextPath 和 servletPath 前面加上

这显然在 3.2.3 上被回滚了。因此,只需升级到最新版本,您可能会看到您的代码行为恢复正常

于 2013-07-18T22:59:36.073 回答