struts中html:error的问题

来源:百度知道 编辑:UC知道 时间:2024/06/09 20:00:05
struts中我要提交类似注册的表单,没输入姓名提示信息
但提交时页面上显示[ServletException in:/web/userAdmin/userAdd.jsp] org.apache.struts.action.ActionMessage'

服务器报错:java.lang.ClassCastException: org.apache.struts.action.ActionMessage
-------------------------------------------------------
actionFormat类如下:
@Override
public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) {
ActionErrors errors = new ActionErrors();

if(username==null||username.trim().length()==0){
errors.add("username",new ActionMessage("errors.required","用户姓名"));
}
return errors;
}
-------------------------------------------------
MessageResources.properties文件里是 errors.required={0} is required.

-------------------------------------------------
userAdd.jsp:
<html:errors property="username"/>
<form action="userAdd.do" method="post">

java.lang.ClassCastException: org.apache.struts.action.ActionMessage
转换异常。
errors.add("username",new ActionMessage("errors.required","用户姓名"));

ActionMessage换成 ActionError 原因就是版本问题

errors.required={0} is required.
struts 有两种验证方法,一个是能过actionForm 类里Validate方法进行验证。
别一种是通过validate 框架进行验证。楼主完全是混合式的验证怎么可以不错呢。这两种方法是完全没有联系的。

ActionErrors errors = new ActionErrors(); 把这个定义就改成
ActionMessages errors = new ActionMessages();应该能解决了。现在不建议用ActionErrors,因为它内存的方法好多都不建义用了。ActionMessages却不是,很好用的。

ApplicationResources.properties
这个文件里面没有配置errors.required