2011-10-03 73 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")); 
相关问题