2010-06-04 64 views
1

有一个表单提交中的用户登录Spring的MVC打开新的标签页无明显原因

<div class="logInDIV"> 
    <form action="login.do" target="login.do" method="post"> 
     <span style="font-size:77%;"> 
      <label>email:</label> 
      <input path="userName" cssClass="textfield" cssStyle="width:160px;" title="user name" name="userName" type="text" /> 
      &nbsp; 
      <label>password:</label> 
      <input path="password" cssClass="textfield" cssStyle="width:160px;" name="password" type="password" /> 
      &nbsp; 
      <input value="Login" class="button" type="submit" style="margin-bottom:4px" /> 
     </span> 
    </form> 
</div> 

和相应的控制方法:

@RequestMapping(value = "/login.do", method = RequestMethod.POST) 
    public String doLogin(
      @RequestParam(value = "userName") String userName, 
      @RequestParam(value = "password") String password, 
      HttpSession session) { 
     logger.info("login.do : userName=" + userName + ", password=" + password); 

     SkunkPostUser skunkPostUser = null; 
     try { 
      skunkPostUser = profileService.getSkunkPostUser(userName, password); 
     } catch (SkunkPostUserNotFoundException userNotFoundException) { 
      return "login"; 
     } 
     session.setAttribute("skunkPostUser", skunkPostUser); 
     return "redirect:/"; 
    } 

出于某种原因,当我点击提交登录按钮它总是打开一个新的标签,不知道为什么,有人知道吗?

+0

你看过JSP生成的HTML吗? – skaffman 2010-06-04 16:22:19

回答

2

<form>删除target属性。它指定了一个target window,而不是目标URL。

+0

谢谢,我喜欢制作HTML错误,然后将它归咎于Spring-MVC:o。 – walnutmon 2010-06-04 16:31:53

2

删除target="login.do"。它有一组有限的值:_blank,_self,_parent,_top,framename。也许你的价值被解释为“_blank”。

相关问题