<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類:
    ??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();
    ?}

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

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

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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲一线产区二线产区区| 亚洲乳大丰满中文字幕| 亚洲妇女熟BBW| 无码乱肉视频免费大全合集| 亚洲成人福利网站| 妻子5免费完整高清电视| 亚洲国产成人在线视频| 91精品视频免费| 亚洲熟妇丰满xxxxx| 免费看a级黄色片| 亚洲av中文无码乱人伦在线观看 | 亚洲香蕉在线观看| 中文字幕影片免费在线观看| 国产精品亚洲午夜一区二区三区| 欧美a级成人网站免费| 亚洲偷自拍另类图片二区| 国产精品久久久久影院免费| 羞羞视频免费网站含羞草| 亚洲色图综合在线| 成全视频高清免费观看电视剧| 亚洲人成网站影音先锋播放| 国产免费看JIZZ视频| 日韩在线视精品在亚洲| 精品国产亚洲一区二区在线观看| 亚洲国产电影av在线网址| 免费特级黄毛片在线成人观看| 亚欧在线精品免费观看一区| 好大好硬好爽免费视频| 亚洲三级电影网址| 成年美女黄网站色大免费视频| 国产精品亚洲一区二区三区 | 日本一区二区三区在线视频观看免费 | 免费v片视频在线观看视频| 国产免费MV大全视频网站| 91亚洲导航深夜福利| 成年在线网站免费观看无广告 | a级毛片无码免费真人久久| 亚洲国产天堂久久综合网站| 国内自产拍自a免费毛片| 一级女性全黄久久生活片免费| 亚洲av日韩av无码|