2014-12-19 7 views
0

Я хочу, чтобы упростить проверку с помощью Spring MVC.Проверка Spring MVC не работает

Я добавил к pom.xml:

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

Вот мой POJO:

import org.hibernate.validator.constraints.Range; 

public class Goal { 
    @Range(min = 1, max = 120) 
    private int minutes; 
    // getters + setters 

и контроллер реализация:

import javax.validation.Valid; 

@Controller 
@SessionAttributes("goal") 
public class GoalController { 

    @RequestMapping(value = "addGoal", method = RequestMethod.GET) 
    public String addGoal(Model model) { 
     Goal goal = new Goal(); 
     goal.setMinutes(10); 
     model.addAttribute("goal", goal); 
     return "addGoal"; 
    } 

    @RequestMapping(value = "addGoal", method = RequestMethod.POST) 
    public String updateGoal(@Valid @ModelAttribute(value = "goal") Goal goal, BindingResult result) { 
     System.out.printf("Result has errors: %s%n", result.hasErrors()); 
     System.out.printf("Minutes updated: %d%n", goal.getMinutes()); 
     if (result.hasErrors()) { 
      return "addGoal"; 
     } 
     return "redirect:/addMinutes.html"; 
    } 
} 

addGoal.jsp страница:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %> 
<html> 
<head> 
    <title>Add Goal Here</title> 
    <style> 
     .error { 
      color: #ff0000; 
     } 

     .errorblock { 
      color: #000; 
      background-color: #ffeeee; 
      border: 3px solid #ff0000; 
      padding: 8px; 
      margin: 16px; 
     } 
    </style> 
</head> 

<body> 
Language: <a href="?language=en">English</a> | <a href="?language=uk">Ukrainian</a> 
<form:form commandName="goal"> 
    <form:errors path="*" cssClass="errorblock" element="div" /> 
    <table> 
     <tr> 
      <td><spring:message code="goal.minutes"/></td> 
      <td><form:input path="minutes"/></td> 
      <td><form:errors path="minutes" cssClass="error"/></td> 
     </tr> 
     <tr> 
      <td colspan="3"> 
       <input type="submit" value="Enter Goal Minutes"/> 
      </td> 
     </tr> 
    </table> 
</form:form> 
</body> 
</html> 

А вот вид страницы:

enter image description here

и соответствующий результат:

enter image description here

фрагмент из консоль:

Result has errors: false 
Minutes updated: -5 

Он должен отображать сообщение об ошибке для отрицательного входа и остаться на той же странице, а не второй экран выстрел.

Я не мог понять причину этой проблемы.

Любое предложение?

+0

Где объявления для тегов 'form' в вашем файле jsp? – mic4ael

+0

@ mic4ael Я пропустил его для сокращения фрагментов кода. Я редактировал вопрос. –

+0

Хорошо, я думал, что это могла быть проблема. – mic4ael

ответ

0

Решение было чищено - webapps Папка в Tomcat.

Я удалил старые webapps, которые были развернуты. И сейчас он отлично работает.

enter image description here

Это имеет какое-то странное влияние на мое текущее приложение.

Смежные вопросы