2011-10-03 33 views
2

我在struts中更新鮮。 我寫的代碼爲login.jspprofile.jsp都包含在同一個目錄中。 當我成功登錄顯示profile.jap頁面,但是如果失敗,它不會重定向到同一頁面意味着login.jsp如何重定向到struts中的同一頁面

一般登錄頁面的路徑是

http://localhost:8000/brand/jsppages/login.jsp

但是當我失敗的重定向到

http://localhost:8000/brand/login.do

我的struts-config.xml是

<action input="/login.jsp" name="LoginForm" path="/login" scope="session" type="brandzter.strutsaction.LoginAction"> 
     <forward name="success" path="/jsppages/profile.jsp" /> 
     <forward name="failure" path="/jsppages/login.jsp" /> 
    </action> 

我不遵循爲什麼每當我給「/jsppages/login.jsp」路徑失敗時重定向到login.do頁面。

這裏是行動接收機類

public class LoginAction extends org.apache.struts.action.Action { 

    private final static String SUCCESS = "success"; 
    private final static String FAILURE = "failure"; 

    @Override 
    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { 

     LoginForm loginForm = (LoginForm) form; 
     boolean availableStatus = CustomerManager.matchUserIdPassword(loginForm.getLoginid(), loginForm.getPassword()); 
     if (availableStatus) { 
      return mapping.findForward(SUCCESS); 
     } else { 
      return mapping.findForward(FAILURE); 
     } 
    } 
} 

我沒有調試這將login.jsp頁面,但沒有顯示指定的網址。

+1

重定向通常由您的操作類返回的轉發控制。 'brandzter.strutsaction.LoginAction'看起來如何?發佈其代碼。最有可能的問題在於它 –

+0

我已經添加了Action類 –

+0

我希望看到web.xml配置直接指向struts過濾器。 –

回答

0

不是很清楚,除非發佈一些代碼從你的行動。但最有可能的是你正在做一個失敗的驗證(在LoginForm)。因此,流程將重定向到input參數action,該參數是從根(/login.jsp)配置的。嘗試改變/jsppages/login.jsp

+0

驗證表單驗證其重定向到錯誤的頁面後不失敗。 –

1
boolean availableStatus = CustomerManager.matchUserIdPassword(loginForm.getLoginid(), loginForm.getPassword()); 

我認爲你的錯誤在於此。它不會允許你通過調用直接獲得價值。 loginform.getLoginid(); 你必須這樣稱呼它

boolean availableStatus = CustomerManager.matchUserIdPassword(loginForm.getString("PropertyNameofTextBox"), loginForm.getString("PropertyNameofTextBox")); 
相關問題