您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > JAVA网页编程课程讲义-8.自动验证输入
自动验证客户输入2议程自动验证客户输入使用自动验证区别客户方验证和服务方验证区别手动验证和自动验证3课堂问题?为什么需要自动验证?自动验证客户输入4表单字段的验证在Action中执行验证最强;具有访问商业逻辑,DB,等等.在多个Actions中重复要求必须手动映射返回输入页面的条件必须自己写验证规则在formbean中执行验证在单独的reset方法中•不仅仅是验证,也能用来修改值使用validate方法•不是十分强大•在多个Actions中不重复要求•将自动的重显输入表单•要求你写验证自己的规则使用自动验证使用许多通用的方法,包括JavaScript自动验证客户输入5手工vs.自动验证手工验证最灵活有完全的访问到bean和业务逻辑和数据库的能力重复相同的逻辑多次如果使用现存的框架,只能运行在服务端•客户方验证要求写许多JavaScript代码枯燥的代码嵌入在Java代码中•违反了,在XML文件中持有尽可能多的的可编辑的策略自动验证强壮的验证代码让你使用标准的验证规则运行在服务器端;也能选择运行在客户方使用XML文件描述自动验证客户输入6客户端vs.服务端验证客户方验证JavaScript代码检验字段格式使用对话框警告用户不合法的值优点:•快缺点:•能被故意的或者无意的跳过•不适合要求大量的应用逻辑服务方验证在服务端使用JAVA代码验证字段格式如果有不正确的值,表单将重显(包含警告信息)不论是否客采用户方验证,服务方验证都必须做自动验证客户输入7Struts流程控制图自动验证客户输入8使用自动验证步骤(概要)1.配置struts-config.xml列出输入表单的地址列出资源文件(资源绑定)开启自动验证器2.编辑资源文件Puterrors.footer,errors.headerforhtml:errorsasbefore编辑标准验证器消息(错误.不正确,etc)创建名称替换{0},{1}in在标准消息中自动验证客户输入9使用自动验证步骤(概要)3.放验证规则在validation.xml文件为每个字段,指定一个或者更多的验证规则找到相应的错误消息的名称看看资源文件需要什么参数补充需要的arg0...argN4.让formbean继承ValidatorForm替换原来的ActionForm5.使用html:errors,和原来相同自动验证客户输入101.为每个字段,指定一个或者更多的验证规则required,mask,email,intRange,maxLength,etc.2.找到相应的错误消息的名称如果规则失败才会产生通常在validatorrules.xml文件中格式为errors.ruleName3.看看资源文件错误消息需要多少参数errors.invalid={0}isinvalid.errors.maxlength={0}cannotbegreaterthan{1}characters.4.补充需要的arg0...argN使用自动验证步骤(第三步详述)自动验证客户输入11使用自动验证1.配置struts-config.xml1.列出输入表单的地址actionpath=...type=...name=...scope=requestinput=...inputFormAddress.jsp2.列出资源文件(资源绑定)message-resourcesparameter=MessageResources/•引用WEB-INF/classes/MessageResources.properties文件3.开启自动验证器plug-inclassName=org.apache.struts.validator.ValidatorPlugInset-propertyproperty=pathnames“value=/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml//plug-in自动验证客户输入12使用自动验证2.编辑资源文件Edit“error”配置格式化错误消息•和手动验证相同errors.header=ULerrors.prefix=LIBFONTCOLOR=REDerrors.suffix=/FONT/B/LIerrors.footer=/UL自动验证客户输入13使用自动验证2.编辑资源文件编辑标准验证器消息(errors.invalid,etc)•struts-blank已经提供一个一个草稿,你可以修改•anlong,anbyte,cannot,etc.errors.invalid={0}isinvalid.errors.maxlength={0}cannotbegreaterthan{1}characters.添加将被替代的提示/消息到错误消息。如{0},{1}.etcinputForm.firstName=FirstnameinputForm.lastName=LastnameinputForm.zipCode=5-digitZIPCode自动验证客户输入14使用自动验证(续)3.放验证规则在validation.xml文件使用formname=“...”来标识beanformname=beanNameFromStrutsConfig使用fieldproperty=“...”depends=“...”标识bean属性的检查规则并且检查属性。fieldproperty=propNamedepends=ruleName•See使用argN...给出错误消息的值fieldproperty=propNamedepends=ruleNamearg0key=key.Name//field看看资源文件需要什么参数错误消息的名称通常是errors.ruleName,但请查看validator-rules.xml来确认自动验证客户输入15validation.xml:结构form-validationandformset主要元素formname=beanName与struts-config.xml中form-bean匹配的名称fieldproperty=firstName与HTML表单参数相匹配的名称(例如,bean属性)depends=required与预先定义的规则相匹配的名称•required:不能为空•mask:必须符合给定的表达式•email:必须为email地址•creditCard:必须是合法信用卡号•(Use4111111111111111fortesting)arg0key=property.subname/替换在错误消息资源文件中的{0}自动验证客户输入16使用自动验证(续)3.放验证规则到validation.xml:例在struts-config.xml中定义Bean的名称是orderFormBeanBean有属性firstName一个标准规则是required资源文件,错误要求是...{0}...该客户消息被inputForm.firstName使用formsetformname=orderFormBeanfieldproperty=firstNamedepends=requiredarg0key=inputForm.firstName//field/form…/formset自动验证客户输入17使用自动验证(续)4.formbean继承ValidatorForm,不是ActionFormimportorg.apache.struts.validator.*;publicclassOrderFormBeanextendsValidatorForm{…}5.html:errors/放在输入页面为定制表单的错误消息编辑资源文件6.(可选的)开启JavaScript验证器添加html:javascriptformName=“beanName”/添加onsubmit=“returnvalidateBeanName(this);”到html:form自动验证客户输入18实例1:使用自动验证corestruts_ch09初始页面开启JavaScript验证器自动验证客户输入19实例1:使用自动验证(结果)关闭JavaScript验证器验证通过自动验证客户输入20实例1(后台)packagecoreservlets;importjavax.servlet.http.*;importorg.apache.struts.action.*;publicclassOrderextendsAction{publicActionForwardexecute(ActionMappingmapping,ActionFormform,HttpServletRequestrequest,HttpServletResponseresponse)throwsException{return(mapping.findForward(success));}}自动验证客户输入21步骤1:配置strutsconfig.xmlform-beansform-beanname=orderFormBean“type=coreservlets.OrderFormBean//form-beansaction-mappingsactionpath=/actions/ordertype=coreservlets.Ordername=orderFormBeanscope=requestinput=/forms/order-form.jspforwardname=success“path=/WEB-INF/results/order-confirmation.jsp//action/action-mappingsmessage-resourcesparameter=MessageResources/plug-inclassName=org.apache.struts.validator.ValidatorPlugInset-propertyproperty=pathnames“value=/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml//plug-in自动验证客户输入22#--Custommessagesforthisapplication--inputForm.firstName=FirstnameinputForm.lastName=LastnameinputForm.address=PostaladdressinputForm.zipCode=5-digitZIPCodeinputForm.creditCardNumber=CreditcardnumberinputForm.email=Emailaddress#--Standarderrors--errors.header=ULerrors.prefix=LIBFONTCOLOR=REDerrors.suffix=/FONT/B/LIerrors.footer=/UL#--validator--errors.invalid={0}isinvalid.errors.maxlength={0}cannotbegreaterthan{1}characters.errors.minlength={0}cannot
本文标题:JAVA网页编程课程讲义-8.自动验证输入
链接地址:https://www.777doc.com/doc-3972823 .html