日期:2014-05-18  浏览次数:20783 次

struts中的error.add怎么不起作用
以下是form中的一段代码
public   ActionErrors   validate(ActionMapping   mapping,
HttpServletRequest   request)   {
//   TODO   Auto-generated   method   stub
ActionErrors   errors   =   new   ActionErrors();
boolean   usernameEntered   =   false;

if(username!=null&&username.length()> 0){
usernameEntered   =   true;
}

else{
errors.add(null,new   ActionError( "error.loginInvalid "));
}
return   errors;
当用户名为空提交的时候   为什么没有报错?
<action
            attribute= "loginForm "
            input= "/login.jsp "
            name= "loginForm "
            path= "/login "
            scope= "request "
          validate= "true "  
            type= "com.yourcompany.struts.action.LoginAction ">
            <forward   name= "success "   path= "/loginsuccess.jsp "   />
              <forward   name= "failure "   path= "/login.jsp "   />
        </action>   这个是相应的config中的代码

请各位大哥帮帮忙谢谢了

------解决方案--------------------
else{
errors.add(null,new ActionError( "error.loginInvalid "));
return errors;
}
这样写才对吧。
------解决方案--------------------
没有进入到Action就返回页面了,
页面加个 <bean:errors/> ,并在资源文件添加error.loginInvalid的说明
------解决方案--------------------
意思就是在login.jsp中找个地方放 <html:errors/>
------解决方案--------------------

你的 FormBean 呢?

在你的FormBean 的 validate方法里加两句测试用的,例如System.out.pringln()打印一下username , 如果没有任何打印说明,你的FormBean没有配置。

如果FormBean 已经配置好了,那你可以试试这样加Error :

errors.add(new ActionError( "error.loginInvalid "));

页面 : <html:errors />

这样试试看。还有,你提交之后有返回到首页吗,假如没有加用户名?

假如返回了,说明你的Validate没问题,假如不是,你就得看看你的配置问题了。