1

こんにちは、Spring MVC と Hibernate を使用しています。私は1つのコントローラと対応するバリデータを持っています

@SuppressWarnings("unchecked")
protected void validate(Class<?> argClass, Errors argErrors,
        Object argObject) {
    List<Field> calidationFieldsList = AnnotationProcessor
            .getAnnotatedFields(argClass, Validation.class);
    if (Precondition.checkNotEmpty(calidationFieldsList)) {
        for (Field field : calidationFieldsList) {
            try {
                field.setAccessible(true);
                Object result;
                result = field.get(argObject);

                Object instance = getValidatorInstance(argClass, field);
                if (Precondition.checkNotNull(instance)
                        && Precondition.checkNotNull(result)) {
                    com.rise.validation.Validation<String, String> validation = (com.rise.validation.Validation<String, String>) instance;
                    boolean valid = validation.validate(result.toString());
                    if (!valid) {
                        argErrors.rejectValue(field.getName(),
                                field.getName() + " Validation Failed");
                    }
                }
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

上記のコードは、すべてのフィールドを検証します。以下は私のコントローラーコードです

@RequestMapping(value = HibernateConstants.SAVE, method = RequestMethod.POST)
public String save(Model argModel, @Valid Person argPerson,
        org.springframework.validation.BindingResult argBindingResult) {
    if (logger.isTraceEnabled()) {
        logger.trace("################################# Entered into PersonController Save Method: #################################");
    }
    if (argBindingResult.hasErrors()) {
        return HibernateConstants.VIEW_SLASH + getSimpleName()
                + HibernateConstants.PERSON;
    }
    Person person = (Person) this.getBaseService().save(argPerson);
    argModel.addAttribute(getSimpleName(), person);
    return HibernateConstants.VIEW_SLASH + getSimpleName()
            + HibernateConstants.VIEW;
}

ここで、BindingResult にエラーがある場合は、Spring フォームのエラー タグを使用してエラー () を表示しているという点で、そのページに転送します。しかし、私はそれらのエラーを見ることができませんでした。

誰でもこれについて私を助けることができますか?私が見逃したものはありますか...?

注:私のコントローラーと検証クラスはどちらも異なります。

誰でも私を正しい道に導くことができますか?

タンク・アマール

4

0 に答える 0