Почему при отправке формы открывается новое окно/вкладка?

Я нашел много вопросов "Как открыть результат формы в новом window", но я столкнулся с противоположной проблемой.

У меня есть форма:


    ...
    

Затем у меня есть контроллер с методом обработки

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

Все работает нормально, за исключением того, что результат открывается в новом окне/вкладке ,

Решение, которое я нашел и работает, состоит в том, чтобы добавить целевой атрибут:


Но _selfAFAIK по умолчанию.

Мне интересно, почему это происходит.

Я проверил, сгенерировано HTML, и мне кажется, что все в порядке:

editдобавлены заголовки

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
@RequestMapping(value = "/A")
public class AController {

9
задан Community 23 May 2017 в 11:54
поделиться