为什么struts2中Action没有执行,但页面居然跳转了
jsp中的提交信息:<s:formaction="login.action"method="post">sturts.xml配置信息<actionname="login"...
jsp中的提交信息:<s:form action="login.action" method="post">
sturts.xml配置信息
<action name="login" class="org.action.LoginAction">
<result name="error">/login.jsp</result>
<result name="success">/main.jsp</result>
<action>
在LoginAction中设置了断点,但点击登录后还是直接跳转到main.jsp了,而且页面的表单没有输入任何数据的啊
public class LoginAction extends ActionSupport{
private Dlb dlb;
public Dlb getDlb(){
return dlb;
}
public void setDlb(Dlb dlb){
this.dlb=dlb;
}
public String excute()throws Exception{
DlDao dlDao=new DlDaoImp();
Dlb user=dlDao.validate(dlb.getUname(), dlb.getUpass(), dlb.getRoleId());
if(user!=null){
Map session=(Map)ActionContext.getContext().getSession();
session.put("user", user);
return SUCCESS;
}else{
return ERROR;
}
}
} 展开
sturts.xml配置信息
<action name="login" class="org.action.LoginAction">
<result name="error">/login.jsp</result>
<result name="success">/main.jsp</result>
<action>
在LoginAction中设置了断点,但点击登录后还是直接跳转到main.jsp了,而且页面的表单没有输入任何数据的啊
public class LoginAction extends ActionSupport{
private Dlb dlb;
public Dlb getDlb(){
return dlb;
}
public void setDlb(Dlb dlb){
this.dlb=dlb;
}
public String excute()throws Exception{
DlDao dlDao=new DlDaoImp();
Dlb user=dlDao.validate(dlb.getUname(), dlb.getUpass(), dlb.getRoleId());
if(user!=null){
Map session=(Map)ActionContext.getContext().getSession();
session.put("user", user);
return SUCCESS;
}else{
return ERROR;
}
}
} 展开
1个回答
展开全部
把你的LoginAction类拿出来看看,里面是不是有个execute()方法,如果你没有重写它,它默认返回success,前提是LoginAction类要继承actionsupport
更多追问追答
追问
action类已补充,麻烦帮忙看看,谢谢
追答
因为我不知道你表单里面是怎么写的
只能教你怎么查错
第一步先确定有没有进入execute()这个方法体,在方法体里面第一行syso.....("------")程序运行是看控制台输出“------”没有
然后确定传的值有没有进来输出语句改成syso.....(user);
最后确定if判断是进入true里面还是false里面的,只需要在分别在里面写一句不同的输出语句就可以知道了
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询