Dodałem sobie formularz który ma jedno pole do którego można wpisać liczbę z przedziału 2 - 10. Dodałem na to pole walidację i komunikat błędu mam być wyświetlany przy polu. Szukałem w książce jak to ma wyglądać jednak chyba coś skopałem skoro uzyskuje następujący błąd po uruchomieniu:
org.apache.jasper.JasperException: An exception occurred processing JSP page /WEB-INF/jsps/lift.jsp at line 92
89: </tr>
90:
91: Powtórzenia od 2 do 10:</td>
92: <sf:input path="rep" name="rep" type="int"/>
93: <sf:errors path="rep" cssClass="error"></sf:errors></td>
94: </tr>
95:
java.lang.IllegalStateException: Neither BindingResult nor plain target object for bean name 'vlift' available as request attribute
<sf:form method="post" modelAttribute="vlift">
<table>
<tr>
<td>Powtórzenia od 2 do 10:</td>
<td><sf:input path="rep" name="rep" type="int"/>
<sf:errors path="rep" cssClass="error"></sf:errors></td>
</tr>
<tr>
<td></td>
<td><input value="Oblicz" type="submit" /></td>
</tr>
</table>
</sf:form>
@RequestMapping(value="/lift", method=RequestMethod.POST)
public String calculateLift(@Valid ValueLift vlift, BindingResult re){
if(re.hasErrors()){
return "lift";
}
}
return "lift";
@RequestMapping(value="/lift", method=RequestMethod.GET)
public String showLift(Model model){
return "lift";
}
@Min(value = 2, message = "Ilość musi być większa lub równa 2!")
@Max(value = 10, message = "Ilość musi być mniejsza lub równa 10!")
private int rep;