我对struts更新鲜。
我编写了login.jsp
和profile.jsp
的代码,两者都包含在同一目录中。
当我成功登录时显示profile.jap页面,但是当失败时它没有重定向到同一页面意味着login.jsp
。
一般登录页面路径是
但是当我无法重定向到
时我的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。
答案 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
。