Spring MVC 3 validation avec des annotations - ne pas montrer la forme:des erreurs

J'ai été coincé avec ce environ une heure, ce n'est pas la première fois que je fais cela, mais je ne peux pas le comprendre.

Il doit me montrer les erreurs de forme, au lieu de cela, il jette cette exception.

LE: j'ai réussi à résoudre l'exception dans le temps, mais je ne peux pas le voir les erreurs. ils ne sont pas rendus

org.springframework.web.util.NestedServletException: traitement de la Requête a échoué; nested exception est org.springframework.la validation.BindException: org.springframework.la validation.BeanPropertyBindingResult: 1 erreurs
Champ d'erreur dans l'objet "catégorie" sur le champ "name": rejeté valeur de [jk]; codes [Gamme.de la catégorie.nom,Gamme.nom,Gamme.java.lang.Chaîne,la Gamme]; les arguments [org.springframework.contexte.de soutien.DefaultMessageSourceResolvable: codes [catégorie.nom,nom]; les arguments []; message par défaut [nom],25,3]; de message par défaut [gfhghj]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestfilter.doFilter(SecurityContextHolderAwareRequestfilter.java:54)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingfilter.doFilter(AbstractAuthenticationProcessingfilter.java:182)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.de sécurité.web.l'authentification.fermeture de la session.LogoutFilter.doFilter(LogoutFilter.java:105)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.de sécurité.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
org.springframework.web.le filtre.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
org.springframework.web.le filtre.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77)
org.springframework.web.le filtre.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.le filtre.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)

@Controller
@RequestMapping("/category")
public class CategoryController {

@Autowired
StockGateway stockGateway;

@RequestMapping(value = "add", method = RequestMethod.POST)
public String addCategory(@Valid @ModelAttribute("category") CategoryAdd category, ModelMap model,
        BindingResult binding) {

    if (binding.hasErrors()) {
        return "category.add";
    }
    CategoryDTO dto = Converter.toCategory(category);
    try {
        stockGateway.createCategory(dto);
    } catch (StockGatewayException e) {
        e.printStackTrace();
    }
    return "redirect:/category/add";

}

@RequestMapping(value = "add", method = RequestMethod.GET)
public String initView(ModelMap model) {
    model.put("category", new CategoryAdd());
    return "category.add";
}

}

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:jsp="http://java.sun.com/JSP/Page" 
xmlns:spring="http://www.springframework.org/tags"
 xmlns:c="http://java.sun.com/jsp/jstl/core" 
 xmlns:security = "http://www.springframework.org/security/tags"
 xmlns:util="urn:jsptagdir:/WEB-INF/tags/util"
 xmlns:form="http://www.springframework.org/tags/form"
 version="2.0">

<security:authorize access="hasRole('ROLE_STOCK')" var="isStock">
    <form:form modelAttribute="category"  method="POST" action="add"  >
            <table>
            <tr>
                <td>Name  :</td> <td> <form:input path="name" /></td>
            </tr>
            <tr>
                <td></td> <td> <form:errors path="name" cssClass="error" /></td>
            </tr>
            </table>
            <form:button>Add</form:button>
    </form:form>
</security:authorize>

public class CategoryAdd {

@Range(min= 3 , max = 25, message="gfhghj")
private String name;



public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}
  • Êtes-vous absolument certain binding.hasErrors() est de retour vrai?
  • Oui. Je suis en utilisant des Tuiles. Que cela pourrait-il avoir quelque chose à faire avec elle?
  • Oui, eh bien, si binding.hasErrors() est faux, vous serez redirigé vers un GET au lieu de retourner à partir d'un POSTE, toute demande de données serait perdu à ce point. Ne parler pas d'erreurs d'y être 🙂
  • Avez-vous essayé de mettre le @Plage de la lecture?
InformationsquelleAutor Blitzkr1eg | 2012-03-12