zoukankan      html  css  js  c++  java
  • Struts2学习笔记2输入校验

    struts2的输入校验是在类型转换的时候发生的,从页面字符串到后台java的对象的中间发生的。具体原因有:1,类型转换失败,2校验数据的合理性。

      方法有:1)使用ActionSupport类的方法validate(),重写该方法,调用this.addActionError()将原因放在方法内。这是Action级别的错误,这是对原始数据在业务逻辑中的判断,还有一种是addFieldError()这是指定某个转换字段出问题了,这个方法即使不写出来,如果在页面字符串到Action内的对象转换出现不能匹配的话,struts2也会自动将这个方法执行,交给input对应的result页面。input是对应这个Action的出现任何错误所执行的一个result,名字是固定的:input,结果页面是自定义的,通常为原始页面;出现错误的显示:使用struts2的标签:

            引入标签库:<%@ taglib prefix="s" uri="/struts-tags"%>

            然后使用标签:<s:actionerror/>就能显示来自于action的错误提示信息了

                    <s:fielderror/>这个是显示字段出错的信息

            关于错误提示信息:action级别的错误是自定义的,如果没有就不显示;但是字段错误如果有一定自动就加入了,如果不自定义该错误提示,框架就自动用默认的提示语句,如果要自定义,可以使用配置文件:在该Action类包里新建一个文件命名为:Action名字.properties,然后在里面使用Invalid.fieldvalue.[字段名字]=[自定义的错误提示信息],每一行写一个字段的提示信息。

          2)使用自定义的验证方法:由于validate()方法是针对于所有的execute()方法,即使是有自定义的execute()也会执行此验证方法,自定的方法是针对于该方法,而且是在执行自定义execute方法之前执行,该自定义的验证方法名字是固定的:validate+自定义的execute(),例如:validateMyExecute()。如果同时存在有自定义的验证方法和原有的validate(),两者都会先于自定义的execute执行,先执行validateMyexecute(),在执行validate(),两个出现任何错误都不会执行Myexecute()方法了。

        

    纸上得来终觉浅,绝知此事要躬行
  • 相关阅读:
    对100以内的两位数,请使用一个两重循环打印出所有十位数数字比个位数数字小的数,
    给定两个不同的变量,不使用中间变量的情况下互换两个变量的值,使用函数直接生成
    将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
    POJ 2138 最长路
    POJ 2133 暴搜
    POJ 1988 带偏移量的并查集
    POJ 1989 贪心
    POJ 1991 DP
    POJ 3175 枚举
    POJ 3168 排序+扫描
  • 原文地址:https://www.cnblogs.com/d2ee/p/2181981.html
Copyright © 2011-2022 走看看