Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Validazione

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2017
    residenza
    Milano
    Messaggi
    2

    Validazione

    Buon giorno a tutti, sono nuovo, sia nel forum, sia come "programmatore" se cosi si puo dire;
    ho iniziato infatti ad interessarmi alla materia pochi mesi fa, verso febbraio, ho iniziato con java, ho visto un po' di html, javascript, ora sto cercando di studiare spring MVC, stavo creando un progettino per fare un po' di pratica dopo tanta teoria, e ho riscontrato questo problema:

    durante l'invio di alcuni dati inseriti tramite form, mi spunta questo errore :

    "type Exception reportmessage Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.String.
    description The server encountered an internal error that prevented it from fulfilling this request.
    exception
    org.springframework.web.util.NestedServletExceptio n: Request processing failed; nested exception is javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.String.
    org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:894)
    org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:789)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:648)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:729)
    org.apache.tomcat.websocket.server.WsFilter.doFilt er(WsFilter.java:52)
    root cause
    javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang.String.
    org.hibernate.validator.internal.engine.constraint validation.ConstraintValidatorManager.verifyResolv eWasUnique(ConstraintValidatorManager.java:218)
    org.hibernate.validator.internal.engine.constraint validation.ConstraintValidatorManager.findMatching ValidatorClass(ConstraintValidatorManager.java:193 )
    org.hibernate.validator.internal.engine.constraint validation.ConstraintValidatorManager.getInitializ edValidator(ConstraintValidatorManager.java:97)
    org.hibernate.validator.internal.engine.constraint validation.ConstraintTree.validateConstraints(Cons traintTree.java:125)
    org.hibernate.validator.internal.engine.constraint validation.ConstraintTree.validateConstraints(Cons traintTree.java:91)
    org.hibernate.validator.internal.metadata.core.Met aConstraint.validateConstraint(MetaConstraint.java :84)
    org.hibernate.validator.internal.engine.ValidatorI mpl.validateConstraint(ValidatorImpl.java:525)
    org.hibernate.validator.internal.engine.ValidatorI mpl.validateConstraintsForDefaultGroup(ValidatorIm pl.java:465)
    org.hibernate.validator.internal.engine.ValidatorI mpl.validateConstraintsForCurrentGroup(ValidatorIm pl.java:429)
    org.hibernate.validator.internal.engine.ValidatorI mpl.validateInContext(ValidatorImpl.java:381)
    org.hibernate.validator.internal.engine.ValidatorI mpl.validate(ValidatorImpl.java:184)
    org.springframework.validation.beanvalidation.Spri ngValidatorAdapter.validate(SpringValidatorAdapter .java:101)
    org.springframework.validation.DataBinder.validate (DataBinder.java:722)
    org.springframework.web.method.annotation.ModelAtt ributeMethodProcessor.validateIfApplicable(ModelAt tributeMethodProcessor.java:155)
    org.springframework.web.method.annotation.ModelAtt ributeMethodProcessor.resolveArgument(ModelAttribu teMethodProcessor.java:108)
    org.springframework.web.method.support.HandlerMeth odArgumentResolverComposite.resolveArgument(Handle rMethodArgumentResolverComposite.java:75)
    org.springframework.web.method.support.InvocableHa ndlerMethod.getMethodArgumentValues(InvocableHandl erMethod.java:156)
    org.springframework.web.method.support.InvocableHa ndlerMethod.invokeForRequest(InvocableHandlerMetho d.java:117)
    org.springframework.web.servlet.mvc.method.annotat ion.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:96)
    org.springframework.web.servlet.mvc.method.annotat ion.RequestMappingHandlerAdapter.invokeHandlerMeth od(RequestMappingHandlerAdapter.java:617)
    org.springframework.web.servlet.mvc.method.annotat ion.RequestMappingHandlerAdapter.handleInternal(Re questMappingHandlerAdapter.java:578)
    org.springframework.web.servlet.mvc.method.Abstrac tHandlerMethodAdapter.handle(AbstractHandlerMethod Adapter.java:80)
    org.springframework.web.servlet.DispatcherServlet. doDispatch(DispatcherServlet.java:923)
    org.springframework.web.servlet.DispatcherServlet. doService(DispatcherServlet.java:852)
    org.springframework.web.servlet.FrameworkServlet.p rocessRequest(FrameworkServlet.java:882)
    org.springframework.web.servlet.FrameworkServlet.d oPost(FrameworkServlet.java:789)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:648)
    javax.servlet.http.HttpServlet.service(HttpServlet .java:729) org.apache.tomcat.websocket.server.WsFilter.doFilt er(WsFilter.java:52)"

    la cosa strana e che prima di questo avevo creato un progettino molto piu banale, in cui avevo gia inserito la validazione tramite annotazioni, e il tutto funzionava.

    ho inserito la dipendenza...

    <dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>5.1.1.Final</version>
    </dependency>

    e questa è la mia classe ...

    package com.scuolaspring.entities;


    import javax.validation.constraints.NotNull;
    import javax.validation.constraints.Past;
    import javax.validation.constraints.Size;


    public class User
    {
    @NotNull()
    @Size(min=2 , max=20 , message="il nome deve avere da 2 a 20 caratteri")
    private String nome;

    @NotNull()
    @Size(min=2 , max=20 , message="il cognome deve avere da 2 a 20 caratteri")
    private String cognome;

    @NotNull()
    @Past()
    private String datadinascita;

    @NotNull()
    private String genere;

    @NotNull()
    @Size(min=4 , max=16 , message="l'username deve essere composto da 4 a 16 caratteri")
    private String username;

    @NotNull()
    @Size(min=4 , max=16 , message="la password deve essere composta da 4 a 16 caratteri")
    private String password;

    @NotNull()
    @Size(min=16 , max=16 , message="il codice fiscale deve essere composto da 16 cifre")
    private String cf;

    @NotNull(message="scegli una professione")
    private String professione;


    public String getNome() {
    return nome;
    }


    public void setNome(String nome) {
    this.nome = nome;
    }


    public String getCognome() {
    return cognome;
    }


    public void setCognome(String cognome) {
    this.cognome = cognome;
    }


    public String getDatadinascita() {
    return datadinascita;
    }


    public void setDatadinascita(String datadinascita) {
    this.datadinascita = datadinascita;
    }


    public String getGenere() {
    return genere;
    }


    public void setGenere(String genere) {
    this.genere = genere;
    }


    public String getUsername() {
    return username;
    }


    public void setUsername(String username) {
    this.username = username;
    }


    public String getPassword() {
    return password;
    }


    public void setPassword(String password) {
    this.password = password;
    }


    public String getCf() {
    return cf;
    }


    public void setCf(String cf) {
    this.cf = cf;
    }


    public String getProfessione() {
    return professione;
    }


    public void setProfessione(String professione) {
    this.professione = professione;
    }

    }


    Sono un po nel panico, scusate se non sono stato chiaro...

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2017
    residenza
    Milano
    Messaggi
    2
    il problema era che il campo datadinascita risultava sempre null, l ho scoperto dopo un po' di sano debugging ... e risultava null xk avevo importato il package sulle date di java e nn quello di sql, con quello di sql funziona alla perfezione !!

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    L'annotazione @Past può essere utilizzata solamente con campi di tipo data: java.util.Date o java.util.Calendar, non con campi String.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.