<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-13  評論-9  文章-9  trackbacks-0

    采取的是spring action 中的例子
    驗證一個Student對象
    ???1.implements Validator接口(org.springframework.validation.Validator)
    ?????????public class StudentValidator implements Validator
    ?????????{
    ????????????public boolean supports(Class clazz)//必須實現的方法
    ????????????{return clazz.equals(Student.class)?;
    ??? ????????}
    ?????????? ?public void validate(Object command,Errors errors)
    ?????????? {
    ????????????? Student student =(Student)command;
    ????????????//?ValidationUtils.rejectIfEmpty? (Errors errors, String field, String errorCode, String defaultMessage)

    ???????????????ValidationUtils.rejectIfEmpty(errors,"login","required.login","login is required");
    ???????????????ValidationUtils.rejectIfEmpty(errors,"password","required.password","Password is required");
    ???????????????ValidationUtils.rejectIfEmpty(errors,"firstName","required.firstName","firstNameis required");
    ???????????????ValidationUtils.rejectIfEmpty(errors,"lastName","required.lastName","lastNameis required");
    ???????????????ValidationUtils.rejectIfEmpty(errors,"city","required.login","cityis required");
    ????????????????????????????????????????????validateEmail(student .email,errors);
    ???????????????validatePhone(student .phone,errors);
    ????????????}
    ????????????
    ????????????private static final String PHONE_REGXP="/(\\({0,1}(\\d{3})))/"
    ????????????private void validatePhone(String phone, Errors erros)
    ????????????{
    ?????????????ValidationUtils.rejectIfEmpty(errors,"phone","required.phone","phoneis required");
    ???????????? Perl5Util per5Util=new Perl5Util();
    ???????????? if(!per5Util.math(PHONE_REGXP,phone))
    ????????????{
    ??????????????errors.reject("invalid.phone","Phone number is invalid");
    ???????????????}
    ???????????????}????
    ??????????????private static final String Email_REGXP="/(\\({0,1}(\\d{3})))/"
    ????????????private void validateEmail(String phone, Errors erros)
    ????????????{
    ?????????????ValidationUtils.rejectIfEmpty(errors,"phone","required.phone","phoneis required");
    ???????????? Perl5Util per5Util=new Perl5Util();
    ???????????? if(!per5Util.math(Email_REGXP,email))
    ????????????{
    ??????????????errors.reject("invalid.phone","Phone number is invalid");
    ???????????????}
    ???????????????}?????????
    ?????

    }
    2.配置bean
    ??????<bean id="methodNameResolver"
    class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver">
    <property name="paramName"><value>method</value>
    </property>
    <property name="defaultMethodName"><value>view</value>
    </property>
    </bean>
    <property name="validator"><bean class="com.StudentValidator "/>?
    </property>
    <property name="defaultMethodName"><value>view</value>
    </property>
    <bean name="/jsp/test.do" class="org.nightwalker.spaces.web.controller.TestController">
    <property name="methodNameResolver">
    <ref local="methodNameResolver"/>
    </property>
    </bean>

    ?

    查看源代碼:
    MultiActionController類:
    ??protected void bind(ServletRequest request, Object command) throws Exception {
    ??logger.debug("Binding request parameters onto MultiActionController command");
    ??ServletRequestDataBinder binder = createBinder(request, command);
    ??binder.bind(request);
    ??if (this.validators != null) {
    ???for (int i = 0; i < this.validators.length; i++) {
    ??????//首先調用supports
    ??? ??if (this.validators[i].supports(command.getClass())) {
    ?????ValidationUtils.invokeValidator(this.validators[i], command, binder.getErrors());
    ????}
    ???}
    ??}
    ??binder.closeNoCatch();
    ?}

    類ValidationUtils:
    public static void invokeValidator(Validator validator, Object obj, Errors errors) {
    ??if (validator != null) {
    ???if (logger.isDebugEnabled()) {
    ????logger.debug("Invoking validator [" + validator + "]");
    ???}
    ???if (obj != null && !validator.supports(obj.getClass())) {
    ????throw new IllegalArgumentException("Validator " + validator.getClass() +
    ??????" does not support " + obj.getClass());
    ???}
    ???validator.validate(obj, errors);
    ???if (logger.isDebugEnabled()) {
    ????if (errors.hasErrors()) {
    ?????logger.debug("Validator found " + errors.getErrorCount() + " errors");
    ????}
    ????else {
    ?????logger.debug("Validator found no errors");
    ????}
    ???}
    ??}
    ?}
    ?

    posted on 2006-06-21 09:39 Dragonofson 閱讀(6030) 評論(1)  編輯  收藏 所屬分類: Spring

    評論:
    # re: Spring MVC表單驗證 2013-03-12 15:12 | vgf
    kljlkjkljl  回復  更多評論
      
    主站蜘蛛池模板: 性无码免费一区二区三区在线 | 亚洲va在线va天堂va不卡下载| 日韩亚洲综合精品国产| 日本免费无遮挡吸乳视频电影| 亚洲高清中文字幕免费| 成人A级毛片免费观看AV网站| 亚洲色大18成人网站WWW在线播放 亚洲色大成WWW亚洲女子 | 狼色精品人妻在线视频免费| 免费一级毛片在播放视频| rh男男车车的车车免费网站| 国产精品亚洲成在人线| 99re这里有免费视频精品| 亚洲第一精品电影网| 成人奭片免费观看| 男女男精品网站免费观看 | 亚洲综合区图片小说区| 免费无码又爽又刺激聊天APP| 亚洲狠狠婷婷综合久久| 亚洲av无码乱码在线观看野外 | 亚洲一本到无码av中文字幕| 日韩一级视频免费观看| 污网站免费在线观看| 亚洲日韩一页精品发布| 亚洲av麻豆aⅴ无码电影| 韩国免费A级毛片久久| 久久精品国产亚洲AV麻豆网站| 中国在线观看免费国语版| 精品一区二区三区免费毛片| 亚洲日韩中文无码久久| 久草在视频免费福利| 蜜桃传媒一区二区亚洲AV| 亚洲精品乱码久久久久久| 欧美大尺寸SUV免费| 香蕉免费一级视频在线观看 | 亚洲色大成网站www永久网站| 亚洲午夜精品第一区二区8050| 99热免费在线观看| 国产亚洲精彩视频| 亚洲首页在线观看| www.亚洲色图.com| 免费观看国产网址你懂的|