SpringMVC深入信息提示(四)
来源:互联网 发布:淘宝买airpods靠谱吗 编辑:程序博客网 时间:2024/06/06 19:24
1.文件配置
从上一节中,我们看到的错误信息的提示都是固定,我们需要是提示信息转换我们想要的信息。这个实现,首先需要我们在src/main/resource下定义messages.properties的文件。这个文件不仅仅是信息配置的信息,同时也是国际化可以配置的地方,我们在稍后的章节中将会学习到国际化。现在我们在messages.properties的文件中添加的信息如下。
Size.profileForm.twitterHandle=Please type in your twitter user nameEmail.profileForm.email=Please specify a valid email addressNotEmpty.profileForm.email=Please specify your email addressPastLocalDate.profileForm.birthDate=Please specify a real birth dateNotNull.profileForm.birthDate=Please specify your birth datetypeMismatch.birthDate = Invalid birth date format.Spring的框架中的类DefaultMessageCodesResolver 将会负责去转换错误的信息提示。这个错误信息的配置规格要遵守如下的形式:
• code + "." + object name + "." + field
• code + "." + field
• code + "." + field type
• code
当然除了上面用的配置文件来处理错误信息,我们也可以直接在类中填写,比如:
@Size(min = 2, message = "Please specify a valid twitter handle")private String twitterHandle;
2.日期范围处理
在Java的日期处理中,我们有一个@past的注解,这个确保日期是过去的时期。我们不想用户输入的生日日期是将来某个时间的,这个也是不合理的。所以我们需要自己定义处标签,用于日期的处理。一样的,我们在date包下定义个标签名为PastLocalDate.
package masterSpringMVC.date;import javax.validation.Constraint;import javax.validation.ConstraintValidator;import javax.validation.ConstraintValidatorContext;import javax.validation.Payload;import java.lang.annotation.*;import java.time.LocalDate;/** * 用户的生日时间处理,输入日期必须是过去的某个时间 * Created by OwenWilliam on 2016/5/15. */@Target({ElementType.FIELD})@Retention(RetentionPolicy.RUNTIME)@Constraint(validatedBy = PastLocalDate.PastValidator.class)@Documentedpublic @interface PastLocalDate { Class<?>[] groups() default {}; Class<? extends Payload>[] payload() default{}; class PastValidator implements ConstraintValidator<PastLocalDate, LocalDate> { public void initialize(PastLocalDate past) { } //判断日期是否是空或是否是过去的 public boolean isValid(LocalDate localDate, ConstraintValidatorContext context) { return localDate == null || localDate.isBefore(LocalDate. now()); } }}
上面的这个方法太简单了,最后我们需要在ProfileForm的birthDate字段添加这个标签。
@NotNull@PastLocalDateprivate LocalDate birthDate;
3.总结
在这一章节中,我们实现了错误信息提示可以动态变化,就是配置在文件中。同时,我们也做了生日日期的限制处理,日期的输入不能为将来和某个时间点。这样我们的profilePage的视图就相对完善了许多了。不过,我们已经的前面对日期处理时,有过这样的问题,不同国家的格式是不一样的,所以我们的系统需要支持国际。下一节中,我们将会讲国际化。
源码路径:git@github.com:owenwilliam/masterSpringMVC.git
0 0
- SpringMVC深入信息提示(四)
- javaweb异常提示信息统一处理(使用springmvc,附源码)
- SpringMVC学习(四)
- SpringMVC(四)
- SpringMVC小结(四)
- SpringMvc学习(四)
- SpringMVC错误提示(三)
- Java中信息提示框的四种类型
- 深入springmvc
- 深入SpringMVC
- 深入springMVC
- 深入SpringMVC
- SpringMVC学习笔记(四)
- 深入Managed DirectX9(四)
- 深入理解缓冲区(四)
- VC++深入解析(四)
- 《深入理解计算机系统》(四)
- MemCache深入学习(四)
- 使用Spring框架对接Twitter(二)
- SpringMVC创建用户信息(一)
- SpringMVC日期处理(二)
- SpringMVC错误提示(三)
- LeetCode--No.21--Merge Two Sorted List
- SpringMVC深入信息提示(四)
- [SM] 双城地图,沿着小河走到一个位置附近的时候,脚下的河水就消失了。
- Linux内核:驱动程序
- SpringMVC国际化(i18n)(五)
- SpringMVC实现list表单(六)
- 公众服务号开启回调模式与企业号开始回调的区别
- 小结SpringMVC(一)
- TKRL论文:具有层次类型的知识图谱表示学习
- SpringMVC文件上传(一)