Struts1.x系列教程(2):简单的数据验证 - 编程入门网
构造方法的第二个参是一个ActionMessage类的对象实例,而不是错误描述信息。
5.ActionMessage类的构造方法的参数并不是错误描述信息,而是错误描述信息的key,具体的信息在Java属性文件中(将在下一步实现)。 6.使用ActionForm的属性可以非常好地验证字符串类型,但对于其他的数据类型(如整型)的某些验证却不太适合。如当用户提交数据时,本该提交一个整数,但用户却提交了一个非整数信息。对于这种情况,在ActionForm类的对象实例中这个用户提交的数据的值为0。虽然使用ActionForm类的属性无法准确验证这种情况,但我们可以使用validate方法的第二个参数request的getParameter方法直接获得客户端提交的数据来进行验证。 7.如果ActionErrors对象中有错误信息,在JSP中需要使用<html:errors>标签显示错误信息。 8.Struts实际上是将ActionErrors对象以org.apache.struts.action.ERROR作为键值保存在了request的属性中。因此,<html:errors>标签实际上是从request的属性中获得的错误信息描述。如我们也可以通过如下的Java代码来获得produceID属性的错误描述信息: <% java.util.Iterator<org.apache.struts.action.ActionMessage> it = ((org.apache.struts.action.ActionErrors)request .getAttribute("org.apache.struts.action.ERROR")).get("productID"); out.println(((org.apache.struts.util.PropertyMessageResources )request .getAttribute("org.apache.struts.action.MESSAGE")).getMessage("error.productID.blank",null)); %> Struts1.x系列教程(2):简单的数据验证(3)时间:2011-01-10 BlogJava 银河使者【第4步】建立Java属性文件 Java属性文件相当于资源文件,以key = value形式保存了在程序中需要的字符串信息。Java属性文件的扩展名为properties。在<samples工程目录>"src目录中建立一个struts目录,在struts目录中建立一个ErrorDescription.properties文件,并输入如下的内容: error.user.blank = User can''t be null. error.password.blank = Password can''t be null. error.password1.confirmation = Password doesn''t match confirmation. error.email.blank = Email can''t be null. error.email.invalid = It is not a valid email address. 【第5步】配置struts-config.xml文件 在本例中需要配置struts-config.xml文件的三个标签:<form-bean>、<action>和<message-resources>。 1.配置<form-bean>标签 这个标签用来定义ActionForm。在<form-beans>标签中加入如下所示的<form-bean>标签: <form-bean name="simpleValidationForm" type="actionform.SimpleValidationForm" /> 2.配置<action>标签 这个标签用来定义Struts中的动作类。在<action-mappings>标签中加入如下所示的<action>标签: <action name="simpleValidationForm" path="/simpleValidation" scope="request" type="action.SimpleValidationAction" input="simpleValidation.jsp"> <forward name="simple" path="simpleValidation.jsp" /> </action> <action>标签中的属性含义描述如下: 1.name:表示ActionForm的名称。也就是<form-bean>标签中的name属性的值。 2.path:表示Struts动作,必须以“/”开头。 3.scope:表示ActionForm类的对象实例(在本例中是Si |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |