两种struts2输入校验的方式.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
两种struts2输入校验的方式

代码实现校验和xml配置文件实现校验?(1)代码实现校验???1、对action所有方法进行validate?action需要继承ActionSupport,并在action重写validate()方法,在validate方法中,根据页面的相应元素名称进行相关校验,如果校验不通过,调用this.fieldError(页面元素name,出错提示信息). 然后返回INPUT对应的视图,视图中使用标签s:fieldError name=页面元素名称/进行回显,一般INPUT对应的视图资源还是原来的输入页面。比如验证手机号:mobilephone;需要在action里做如下处理:?????if(mobilephone==null||.equals(mobilephone.trim())){???this.addFieldError(手机号码不能为空,mobilephone);??????}????else if(!Ppile(^1[358]//d{9}$).matcher(mobilephone).matches()){??this.addFieldError(手机号格式不对,mobilephone);??}然后在struts.xml中配置一个result name=inputindex.jsp/result最后从index.jsp页面中通过s:fielderror/输出相关的错误信息前面需要加入struts标签%@ tagliburi=struts-tags prefix=s%》###############################或者####################################1)在action中,通过this.addFieldError(name, name is error);???????????????????this.addFieldError(name, name is too long);??//定义错误提示信息???????(使用此方法要继承ActionSupport,且此action在struts.xml中不用配置input结果视图)2)在JSP页面中,查看错误信息?方式一:!-- 以固定的css样式取出错误信息,不方便我们进行相应的处理--????????????s:fielderrorfieldName=name theme=simple/?方式二:!-- 从存储错误信息的Map中拿数据 --????????????s:property value=[0]/????????????s:property value=[1]/????????????!-- 显示详细的栈信息--?????????????s:debug/s:debug?debug中的errors是一个map类型,而name是一个数组,可以在action继续添加错误提示信息?s:debug/s:debug可以查看值栈信息??总结:从方式二我们可以看出当action中调用this.addFieldError方法时,值栈和request域中就会添加errors对象,所以我们可以在拦截器中通过request获取errors对象:???HttpServletRequest request = ServletActionContext.getRequest();???Map ???errors = (Map) request.getAttribute(errors);或者???????ActionContext context = actionInvocation.getInvocationContext().getContext();???????ValueStack stack = context.getValueStack();??????Map ??errors = (Map)?stack.findValue(errors)###############################或者####################################?????2、对action中指定方法进行validate???????在action中加入validateXXX()方法。(其中XXX是action中指定的方法名)(2)配置文件实现校验????1、对action所有方法进行validate编写ActionClassName-validation.xml.??ActionClassName是action对应的简单类名,validation是固定写法,将这个XML文件放在与action同一个包下面,当然action还是要去继承ActionSupport这个类,下面是配置文件的例子。其中type还有很多~例如ema

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档