表单的action为:
《form action="login.action">《/form>
struts2.xml的配置为:
《action name="login" class="loginAction" method="userLogin"》
《result name="ok"》index.jsp《/result》
《result name="error"》login.jsp《/result》
《/action》
LoginAction的代码为:
public class LoginAction extends ActionSupport implements ServletRequestAware{
private static final long serialVersionUID = 1L;
private HttpServletRequest req;
private LoginServiceinter loginServiceImp;
@Override
public String execute() throws Exception {
System.out.println("进入默认方法");
return "ok";
}
public String userLogin(){
Users user = loginServiceImp.userLogin(req.getParameter("username"), req.getParameter("password"));
if(user!=null){
req.getSession().setAttribute("userid", user.getUserId());
req.getSession().setAttribute("username", user.getUsername());
return "ok";
}
return "error";
}
@Override
public void setServletRequest(HttpServletRequest arg0) {
this.req = arg0;
}
}
结果访问不到
HTTP Status 404 - No result defined for action com.zui2jun.action.LoginAction and result ok
控制台提示:
进入默认方法
如果将form改成《form action="asdf.action"》
struts.xml改成
《action name="asdf" class="loginAction" method="asdf"》
《result name="ok">/index.jsp
《result name="error">/login.jsp</result》
《/action》
方法名改成
public String asdf(){
Users user = loginServiceImp.userLogin(req.getParameter("username"), req.getParameter("password"));
if(user!=null){
req.getSession().setAttribute("userid", user.getUserId());
req.getSession().setAttribute("username", user.getUsername());
return "ok";
}
return "error";
}
就可以正常访问 是为什么?