Ограничения валидации Javax, не распознанные спящим [duplicate]

Я думаю, что это должно сделать трюк. Я просто добавил if(isset и добавил конкатенацию к переменным в теле, чтобы отделить PHP от HTML.

<?php
    $name = $_POST['name'];
    $email = $_POST['email'];
    $message = $_POST['message'];
    $from = 'From: yoursite.com'; 
    $to = 'contact@yoursite.com'; 
    $subject = 'Customer Inquiry';
    $body = "From:" .$name."\r\n E-Mail:" .$email."\r\n Message:\r\n" .$message;

if (isset($_POST['submit'])) 
{
    if (mail ($to, $subject, $body, $from)) 
    { 
        echo '<p>Your message has been sent!</p>';
    } 
    else 
    { 
        echo '<p>Something went wrong, go back and try again!</p>'; 
    }
}

?>
4
задан Romell 21 April 2016 в 01:25
поделиться

3 ответа

У меня была одна и та же проблема, но для меня это не помогло, но это помогло мне как с JPA, так и с MongoDb, чтобы сохранить кого-то еще, потратив на это время. Мало того, что это работает с валидацией, но я получаю приятную ошибку 400, а не по умолчанию 500.

Пришлось добавить это в мои зависимости build.gradle

    compile('org.hibernate:hibernate-validator:4.2.0.Final')

и это config class

@Configuration
public class CustomRepositoryRestConfigurerAdapter extends RepositoryRestConfigurerAdapter {


   @Bean
   public Validator validator() {
       return new LocalValidatorFactoryBean();
   }

   @Override
   public void configureValidatingRepositoryEventListener(ValidatingRepositoryEventListener validatingListener) {
       validatingListener.addValidator("afterCreate", validator());
       validatingListener.addValidator("beforeCreate", validator());
       validatingListener.addValidator("afterSave", validator());
       validatingListener.addValidator("beforeSave", validator());
   }
}
6
ответ дан Romell 20 August 2018 в 23:33
поделиться
  • 1
    Я продолжаю получать эту ошибку, когда добавляю вашу конфигурацию: java.lang.AbstractMethodError: org.hibernate.validator.engine.ValidatorFactoryImpl.close () V Есть ли у вас какие-либо идеи по ее устранению? (что V в конце не является опечаткой) – Red fx 14 November 2017 в 11:02

Вы можете использовать следующий код для проверки

@Configuration
@Import(value = MongoAutoConfiguration.class)
public class DatabaseConfiguration extends AbstractMongoConfiguration 
{

  @Resource
  private Mongo mongo;

  @Resource
  private MongoProperties mongoProperties;

  @Bean
  public ValidatingMongoEventListener validatingMongoEventListener() {
    return new ValidatingMongoEventListener(validator());
  }

  @Bean
  public LocalValidatorFactoryBean validator() {
    return new LocalValidatorFactoryBean();
  }

  @Override
  protected String getDatabaseName() {
    return mongoProperties.getDatabase();
  }

  @Override
  public Mongo mongo() throws Exception {
    return mongo;
  }

}
0
ответ дан Red fx 20 August 2018 в 23:33
поделиться

Я нашел, что лучше сделать свою собственную версию аннотации @NotNull, которая также проверяет пустую строку.

@Documented
@Constraint(validatedBy = NotEmptyValidator.class)
@Target({ElementType.METHOD, ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
public @interface NotEmpty {


    String message() default "{validator.notEmpty}";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};

}

public class NotEmptyValidator implements ConstraintValidator<NotEmpty, Object> {

    @Override
    public void initialize(NotEmpty notEmpty) { }

    @Override
    public boolean isValid(Object obj, ConstraintValidatorContext cxt) {
        return obj != null && !obj.toString().trim().equals("");
    }

}
3
ответ дан Sheikh Abdul Wahid 20 August 2018 в 23:33
поделиться
  • 1
    Спасибо, шейх Абдул, я попробую это позже :) – oxyt 22 May 2016 в 11:41
Другие вопросы по тегам:

Похожие вопросы: