gpt4 book ai didi

java - 为什么表单提交会打开新窗口/标签?

转载 作者:太空狗 更新时间:2023-10-29 13:28:52 24 4
gpt4 key购买 nike

我发现了很多问题"How to open form result in new window" ,但我面临着相反的问题。

我有表格:

<form:form method="post" commandName="search">
...
<input type="submit" value="Search" />
</form>

然后我有了带有处理方法的 Controller

@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";
}

一切正常,除了结果在新窗口/标签中打开。

我找到并正在使用的解决方案是添加目标属性:

<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

edit 2 为 result.form 添加方法

@RequestMapping(value = "/result.form", method = RequestMethod.GET)
public String result() {
return "forms/result";
}

我的 Controller 类开始于:

@Controller
@RequestMapping(value = "/A")
public class AController {

最佳答案

问题出在 base tag .我故意在标签中添加了 target="_blank",可能是因为我从 w3schools 复制了示例:-/

关于java - 为什么表单提交会打开新窗口/标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9825612/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com