ActionMessages与ActionErrors解决方案

在Struts里进行表单验证和业务逻辑验证真是一个很麻烦的事情,看书、上网了解了ActionMessage与ActionErrors的基本知识,可以拿来书上或网上的例程来试试。错、错,又错,还是有错,我说是的我的程序结果有错误,而不是真的显示出了验证错误信息。

怎么回事呢?经过一天的不断测试,成功了...

经验就是:

在ActionFrom中使用ActionErrors

错误信息添加用add(“error_key“,new ActionError(“error.input.name“))

jsp中使用 显示错误。<html:errors property="error_key"/>

 

在Actoin中使用ActionMessages

错误信息添加使用add(“error_key“,new ActioinMessage(“errors.loginerror“))

<html:messages id="errors" message="true">
<font color="red"><bean:write name="errors"/></font>
</html:messages>

jsp中使用 来显示错误。不要管id和name中是什么,只要两者一样,就会显示所有的ActionMessages出来

以下是我的代码

login.jsp:

<html:messages id="errors" message="true">
<font color="red"><bean:write name="errors"/></font>
</html:messages>

<html:form action="/loginAction">
userName:<html:text property="userName"/><html:errors property="name"/>
<br>
userPWD:<html:text property="userPWD"/><html:errors name="pwd"/>
<br>
year:<html:select property="operationYear">
<html:options collection="years" property="id" labelProperty="name"/>
</html:select>
<html:submit property="submit" value="Submit"/><br>
<html:reset value ="Reset"/>
</html:form>

LoginAction


 LoginForm loginForm = (LoginForm) actionForm;
 ActionErrors errors = new ActionErrors();
 if (loginForm.getUserName().toString().equals("admin") &&
loginForm.getUserPWD().toString().equals("111")) {
}
else {
errors.add("loginerror", new ActionMessage("errors.loginerror"));
 }
 if (!errors.isEmpty()) {
 saveErrors(httpServletRequest, errors);
 return (actionMapping.findForward("error"));
 }
 return (actionMapping.findForward("seccess"));

LoginForm

ActionErrors errors = new ActionErrors();
 if(userName==null||userName.length()<1){
 errors.add("name",new ActionError("test.name"));
 }
 if(userPWD==null||userPWD.length()<1){
 errors.add("pwd",new ActionError("test.pwd"));
}

 return errors;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值