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没问题,假如不是,你就得看看你的配置问题了。