如何在struts中重定向到同一页面

时间:2011-10-03 15:38:13

标签: java redirect struts

我对struts更新鲜。 我编写了login.jspprofile.jsp的代码,两者都包含在同一目录中。 当我成功登录时显示profile.jap页面,但是当失败时它没有重定向到同一页面意味着login.jsp

一般登录页面路径是

  

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页面。

这是Action类 -

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页面,但没有显示给定的URL。

2 个答案:

答案 0 :(得分:1)

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

我认为你的错误在于此。它不会让你通过电话直接获得价值。     loginform.getLoginid(); 你必须这样称呼它

boolean availableStatus = CustomerManager.matchUserIdPassword(loginForm.getString("PropertyNameofTextBox"), loginForm.getString("PropertyNameofTextBox"));

答案 1 :(得分:0)

除非从您的行动中发布一些代码,否则不太清楚。但很可能你正在进行验证(在LoginForm中)失败。因此,流程将被重定向到input配置的action参数,该参数是从根(/login.jsp)配置的。尝试更改/jsppages/login.jsp