【问题标题】:Spring 4 form submissionSpring 4 表单提交
【发布时间】:2015-01-05 14:57:49
【问题描述】:

我最近将 Spring 框架从 3.1.2 升级到了 4.1.1。还升级到 Tomcat 8 和 Java 8。我也在使用 Tiles 2.2.2。

我的网页使用 Spring 4 加载良好,但当我提交表单时出现问题。 URL 请求更改并省略了 webapp 名称。

例如,当我提交表单时, 预期的 URL 应该是 http://xx.xx.xx.xx/webappname/createuser/submit

但 URL 更改为 http://xx.xx.xx.xx/createuser/submit。因此,会引发“请求的资源不可用”错误。

我在使用 Spring 3.1.2、Tomcat 7、Java 7 时没有遇到这个问题。

我可以知道我错过了什么吗?

谢谢你, 胡须

编辑:

我的 jsp 视图是这样的

<form:form method="post" action = "/createuser/submit" commandName = "createForm" >
 ..... 
< /form>  

【问题讨论】:

  • 你可以试试

标签: java spring tomcat


【解决方案1】:

在您的超链接前添加:

${pageContext.request.contextPath}

查看接受的答案here

【讨论】:

  • 正如我之前的评论中提到的,我没想到代码会发生变化,因为它在 Spring 3 中工作。而且我不希望为我要去的每个表单重复这个上下文路径变量去创造。还有其他建议吗?
【解决方案2】:

您的操作 URL 以 root 开头,将您的操作 URL 更改为

action = "createuser/submit"   

或者使用&lt;c:url ... /&gt;标签创建URL,如下图所示

<c:url value="createuser/submit" var="myActionUrl" />
<form:form action="${myActionUrl}" .... >   

希望这会对你有所帮助。

【讨论】:

  • 您对更改 action = "createuser/submit" 的建议适用于某些视图。我不确定为什么升级会导致此问题。我在使用 Spring 3.1.4 时没有遇到过这个问题。当我将库更改为 Spring 4 时,我没想到会更改代码。这是预期的吗?
猜你喜欢
  • 1970-01-01
  • 2013-05-24
  • 2016-06-29
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-30
  • 2012-10-22
相关资源
最近更新 更多