2016-08-16 4 views
0

Я подготовил приложение, которое работает с подтверждением формы с использованиемСообщение о спящем режиме не отображается

Весенний MVC и спящий режим.

Я добавил @NotNull ограничение на моем поле «зарплаты», с сообщением

«Пожалуйста, введите правильное значение», но , что сообщение не получает отображается

Как решить эту проблему ??

messages.properties:

NotNull.person.salary = не должно быть пустым

модель

@Entity 
public class Person { 

    @Id  
    @GeneratedValue(strategy=GenerationType.AUTO) 
    private Integer id; 
    private String name;  
    private String address; 
    @Valid @NumberFormat(style=Style.CURRENCY) @NotNull(message="Please enter a value") 
    private int salary; 
    private String gender; 

Форма

form:form action="/MainAssignment3/save" method="post" modelAttribute="p"> 
     <!-- <input type="hidden" name="id" > --> 
     name : <input type="text" name="name"> <br/> 
     address : <input type="text" name="address" ><br/> 
     gender : <input type="text" name="gender" ><br/> 
     salary : <input type="text" name="salary" ><br/> 
     <input type="submit"value="submit"> 
    </form:form> 

AddPerson.jsp

<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Add Employee</title> 
</head> 
<body> 
<springForm:form action="/MainAssignment3/save" method="POST" 
     commandName="person"> 

     <table style="border: thin; border: ridge;"> 

      <tr> 
       <td>name</td> 
       <td><springForm:input path="name" id="name" 
         placeholder="Enter Name" /></td> 

      </tr> 
      <tr> 
       <td>address</td> 
       <td><input type="text" name="address" placeholder="Enter Address" ></td> 
      </tr> 
      <tr> 
       <td>gender</td> 
       <td><springForm:input path="gender" id="gender" placeholder="Enter Gender" /></td> 

      </tr> 
      <tr> 
       <td>salary</td> 
       <td><input type="text" name="salary" placeholder="Enter Salary" ></td> 
       <td><springForm:errors path="salary" /></td> 


       <td style="padding-left: 110px;"><input type="submit"value="submit"></td> 
      </tr> 

     </table> 
    </springForm:form> 

messages.properties

NotNull.p.salary = недействителен

//////////////////// ////// контроллер /////////////////

@RequestMapping(value = "/newPerson", method = RequestMethod.GET) 
public ModelAndView newPerson(ModelAndView model) throws IOException { 
    @SuppressWarnings("unused") 
    Person p = new Person(); 
    model.addObject("person", new Person()); 
    model.setViewName("AddPerson"); 

    return new ModelAndView("AddPerson", "person", new Person()); 

} 

@RequestMapping(value="/save") 
public String save(@ModelAttribute @Valid Person p, BindingResult result) { 

    if(result.hasErrors()) 
    { 

     return "AddPerson"; 
    } 
    else 
    {  
    ps.save(p); 

    return "redirect:http://localhost:8080/MainAssignment3/"; 

    } 
} 
+0

У кого-нибудь есть предложения по этому поводу? –

+0

willl help ?? Я попытался поместить его в jsp под полем:

+0

Я отредактировал и обновил свои файлы –

ответ

0

Что вам нужно сделать, это

в контроллере:

public String save(@ModelAttribute @Valid person) {//instructions.. } 

Затем в JSP использовать <form:error path="person"> .Здесь, в path вы положили атрибут, который вы связывающую в контроллере. Для получения дополнительной информации проверьте это link

+0

Я сделал это изменение в СПЯ:

+0

Теперь, я получаю сообщение об ошибке на линии: \t У меня есть обновил мой вопрос с моего контроллера –

+0

Ошибка решена. Но теперь я получаю исключение NumberFormatException, когда я не ставил никакой ценности в поле «зарплата» во время выполнения.Чтобы проверить проверку формы, я попытался оставить столбец зарплаты пустым, так как я применил к нему проверку @NotNull. Я получил исключение: Не удалось преобразовать значение свойства type [java.lang.String] в требуемый тип [int] для зарплаты свойства; inested exception is java.lang.NumberFormatException: для строки ввода: "" –

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