为什么表单提交会打开新的窗口/选项卡?

我发现了很多问题“如何在新窗口中打开表单结果”,但是我面临着相反的问题。

我有表格:

<form:form method="post" commandName="search">

...

<input type="submit" value="Search" />

</form>

然后我有控制器的处理方法

@RequestMapping(value = "/search.form", method = RequestMethod.POST)

public String submit( @Valid final SearchObject searchObject, final BindingResult bindingResult ) {

if ( bindingResult.hasErrors() ) return "forms/search";

return "redirect:/A/result.form";

}

一切正常,除了在新窗口/选项卡中打开结果的事实。

我发现并且正在工作的解决方案是添加target属性:

<form:form method="post" commandName="search" target="_self">

但是_self是默认的AFAIK。

我想知道为什么会这样。

我检查了生成的HTML,在我看来还可以:

<form id="search" action="/myApp/A/search.form" method="post">

添加的标题

Content-Language    en-US

Content-Length 0

Date Thu, 22 Mar 2012 16:29:13 GMT

Location http://localhost:8080/myApp/A/result.form

Server Apache-Coyote/1.1

Request Headersview source

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/ *;q=0.8

Accept-Encoding gzip, deflate

Accept-Language en-us,en;q=0.5

Connection keep-alive

Cookie JSESSIONID=E9ACB44C4ED3814814ABE7D96C90135C; GUEST_LANGUAGE_ID=cs_CZ; COOKIE_SUPPORT=true

Host localhost:8080

Referer http://localhost:8080/myApp/A/search.form

User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0

Response Headers From Cache

Content-Language en-US

Content-Length 0

Date Thu, 22 Mar 2012 16:29:13 GMT

Location http://localhost:8080/myApp/A/result.form

Server Apache-Coyote/1.1

Request Headers From Upload Stream

Content-Length 64

Content-Type application/x-www-form-urlencoded

GET sessions.form

200 OK

localhost:8080

309 B

::1:8080

6ms

HeadersResponseCacheHTML

Content-Language en-US

Content-Length 309

Content-Type text/html;charset=utf-8

Date Thu, 22 Mar 2012 16:29:13 GMT

Server Apache-Coyote/1.1

Request Headersview source

Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/ *;q=0.8

Accept-Encoding gzip, deflate

Accept-Language en-us,en;q=0.5

Connection keep-alive

Cookie JSESSIONID=E9ACB44C4ED3814814ABE7D96C90135C; GUEST_LANGUAGE_ID=cs_CZ; COOKIE_SUPPORT=true

Host localhost:8080

Referer http://localhost:8080/myApp/A/search.form

User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0

为result.form添加的方法

@RequestMapping(value = "/result.form", method = RequestMethod.GET)

public String result() {

return "forms/result";

}

我的控制器类开始于:

@Controller

@RequestMapping(value = "/A")

public class AController {

回答:

问题出在基本标签中。我有意target="_blank"添加标签,可能是因为我从w3schools复制了示例:-/

以上是 为什么表单提交会打开新的窗口/选项卡? 的全部内容, 来源链接: utcz.com/qa/399828.html

回到顶部