<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 閱讀(6031) 評論(1)  編輯  收藏 所屬分類: Spring

    評論:
    # re: Spring MVC表單驗證 2013-03-12 15:12 | vgf
    kljlkjkljl  回復  更多評論
      
    主站蜘蛛池模板: 亚洲欧洲日本天天堂在线观看| 国产亚洲精AA在线观看SEE| 亚洲在成人网在线看| 91精品视频在线免费观看| 亚洲Av熟妇高潮30p| 日本免费一区二区三区四区五六区| 亚洲AV日韩精品久久久久久久| 免费黄色电影在线观看| 91精品国产亚洲爽啪在线影院| 最近免费最新高清中文字幕韩国| 亚洲国产一区二区a毛片| 最近高清中文字幕无吗免费看| 国产成人精品日本亚洲网址| 成在人线AV无码免费| 疯狂做受xxxx高潮视频免费| 亚洲国产精品一区二区第一页免| 在线播放国产不卡免费视频| 国产亚洲成av人片在线观看| 最近中文字幕国语免费完整 | 亚洲日本久久久午夜精品| 无码一区二区三区免费视频| 亚洲av永久中文无码精品综合 | 亚洲欧洲精品成人久久曰影片| 午夜老司机永久免费看片| 亚洲丝袜美腿视频| 噼里啪啦电影在线观看免费高清| 亚洲AV性色在线观看| 亚洲国产成人片在线观看无码| 国产91色综合久久免费| 久久精品国产亚洲AV电影网| 国产成人精品日本亚洲专区61 | 久久久精品免费视频| 中文字幕在线日亚洲9| 亚洲精品网站在线观看不卡无广告| 特级做A爰片毛片免费看无码| 亚洲国色天香视频| 亚洲性在线看高清h片| 中文字幕在线观看免费视频 | 亚洲最大黄色网站| 亚洲成av人在片观看| 最近免费最新高清中文字幕韩国|