2012-03-22 8 views
8

मुझे बहुत सारे प्रश्न "How to open form result in new window" मिले, लेकिन मुझे विपरीत समस्या का सामना करना पड़ रहा है।क्यों फॉर्म सबमिट नई विंडो/टैब खुलता है?

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

सब कुछ ठीक काम करता है, तथ्य यह है कि परिणाम नई विंडो/टैब में खोला जाता है को छोड़कर:

मैं प्रपत्र की है।

<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 के लिए संपादित करें 2 जोड़ा विधि

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

मेरा cont रोलर वर्ग शुरू होता है के साथ:

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

क्या आपके पास जावास्क्रिप्ट के योग्य होने पर वही व्यवहार है? – sinuhepop

+0

व्यवहार अक्षम जेएस के साथ व्यवहार समान है। – Betlista

+1

विभिन्न ब्राउज़रों के बारे में क्या? क्या अन्य वेबसाइटें और लिंक ठीक काम करते हैं? – adarshr

उत्तर

6

समस्या base tag में था। मैं टैग में जानबूझकर target="_blank" था, संभवतः क्योंकि मैंने w3schools से उदाहरण की प्रतिलिपि बनाई: -/

+0

उन लोगों में से जिनके पास '

'टैग में' target = "_ blank" नहीं है, यह निश्चित रूप से समाधान है। –

संबंधित मुद्दे