struts2知识点备忘

阅读更多
struts2标签写的form表单
1. 只有FieldError级别错误才会自动显示出来,不再需要使用类似这样的标签:
2. 验证出错的话,如果跳到form表单页面,那么会自动保留上次填入的表单信息
3. FieldError级别错误信息都会在每个Filed的上面显示
4. ActionError级别的错误会整体显示在一起,并且需要使用标签:
5. 类型转换错误是属于FieldError级别的
6. ActionError是都放在List里的,而FieldError是放在Map里的
7. validateExecute invoke...
   validate invoke..

   或者

   testValidate invoke...
   validate invoke...
   可以知道validate方法始终会被执行。

8. 输入校验无论是通过代码实现还是通过validation.xml实现,流程大概都是这样的:
   
    A.先类型转换,转换错误的都会赋予默认值,比如int型的是0,String类型的默认值是null
   B.输入校验,按照类型转换后的值进行校验。即类型转换错误的,会按照默认值校验,而不是未转换前的值。即不会按照用户输入的值进行校验。
    C. 如果校验错误,会返回到用户输入界面,用户输入的值不会丢失,如果类型转换出错的字段所输出的值是用户原始输入的,而不是类型转换后的。如果什么都没输的字段的值这时会是默认值,即 int型的字段如果什么都没输入,默认值是0,这时会是0,而不是空白。
9. 通过validation验证时,如果日期输入错误,会按照字符串处理,比如:

    	
    		birthday  must not be blank.
    	
    	
    		2007-01-01
    		2007-12-31
    		birthday's value  must between ${min} and ${max}
    	
    

比如如果把2007-12-31改为2007-21-31,因为没有21这个月,则会把2007-21-31作为一个字符串,而不是Date类型,即会去调用setMax(String max)这个方法,而不是setMax(Date max)这个方法。

你可能感兴趣的:(XML,C,C++,C#)