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

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

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

    隨筆-13  評(píng)論-9  文章-9  trackbacks-0

    采取的是spring action 中的例子
    驗(yàn)證一個(gè)Student對(duì)象
    ???1.implements Validator接口(org.springframework.validation.Validator)
    ?????????public class StudentValidator implements Validator
    ?????????{
    ????????????public boolean supports(Class clazz)//必須實(shí)現(xiàn)的方法
    ????????????{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類(lèi):
    ??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++) {
    ??????//首先調(diào)用supports
    ??? ??if (this.validators[i].supports(command.getClass())) {
    ?????ValidationUtils.invokeValidator(this.validators[i], command, binder.getErrors());
    ????}
    ???}
    ??}
    ??binder.closeNoCatch();
    ?}

    類(lèi)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) 評(píng)論(1)  編輯  收藏 所屬分類(lèi): Spring

    評(píng)論:
    # re: Spring MVC表單驗(yàn)證 2013-03-12 15:12 | vgf
    kljlkjkljl  回復(fù)  更多評(píng)論
      

    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲综合色婷婷七月丁香| 亚洲av片一区二区三区| 久久精品亚洲一区二区三区浴池| 波霸在线精品视频免费观看| 亚洲综合无码精品一区二区三区| jizz免费观看| 亚洲日韩小电影在线观看| 国产福利免费视频 | 亚洲AV日韩AV永久无码色欲| 国产精品久久免费| 亚洲人成黄网在线观看 | 暖暖日本免费在线视频| 亚洲熟妇成人精品一区| 女人张开腿等男人桶免费视频| 亚洲免费福利在线视频| 国产麻豆免费观看91| 蜜桃传媒一区二区亚洲AV| 亚洲成a人一区二区三区| 大妹子影视剧在线观看全集免费 | 亚洲综合av一区二区三区不卡 | 亚洲色精品aⅴ一区区三区 | 黄网站免费在线观看| 亚洲男人第一av网站| 久久午夜免费视频| 亚洲精品无码你懂的| 亚洲免费视频一区二区三区| 久久成人18免费网站| 亚洲精品免费在线视频| 日韩免费视频播放| 国产免费人成视频在线播放播| 久久国产精品亚洲综合| 成年人在线免费看视频| eeuss影院ss奇兵免费com| 亚洲综合精品一二三区在线| 国产精品视频永久免费播放| 一个人看的www免费高清| 亚洲精品电影天堂网| 免费国产不卡午夜福在线| 在线毛片片免费观看| 国产精品亚洲精品观看不卡| 亚洲精品456播放|