2015-06-02 3 views
-1

Пожалуйста, помогите сделать проверку jsr 303 для страниц Freemarker. Есть класс, контроллер, файл messages.properties, созданный bean id = "messageSource"> Мне нужно сделать страницу в Freemarker для создания нового курса. При заполнении пустых полей или неправильном сообщении о выходе выходного сигнала диапазона.jsr303 и Freemarker, действительный пример

public class Course { 
@NotEmpty 
private String name; 
@NotEmpty 
private String category; 
@Range(min = 20, max = 25) 
int age; 

//get and set 
} 


NotEmpty.course.name = Name is required! 
NotEmpty.course.category= Categoryis required! 
Range.course.age = Age value must be between 20 and 25 


@Controller 
@RequestMapping("/customer") 
public class SignUpController { 

@RequestMapping(value = "/signup", method = RequestMethod.POST) 
public String addCustomer(@Valid Course course, BindingResult result) { 

    if (result.hasErrors()) { 
     return "SignUpForm"; 
    } else { 
     return "Done"; 
    } 

} 

@RequestMapping(method = RequestMethod.GET) 
public String displayCustomerForm(ModelMap model) { 

    model.addAttribute("course", new Course()); 
    return "SignUpForm"; 

} 

} 


<!-- bind your messages.properties --> 
<bean class="org.springframework.context.support.ResourceBundleMessageSource" 
    id="messageSource"> 
    <property name="basename" value="messages" /> 
</bean> 

Как сделать эту страницу?

<html> 
<head> 
<style> 
.error { 
color: #ff0000; 
} 

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

<body> 
<h2>Course:</h2> 

<form class="form-horizontal" commandName="course" method=POST> 
    <fieldset> 
     <div class="control-group"> 
     <label class="control-label">Name</label> 
     <div class="controls"> 
      <input id="name" name="name" class="span5" type="text"/> 
      <@spring.showErrors "<br>" /> 
     </div> 
     </div> 


     <div class="control-group"> 
     <label class="control-label">Description</label> 
     <div class="controls"> 
      <textarea id="description" name="description" class="span5" rows="3"></textarea> 
      <@spring.showErrors "<br>" /> 
     </div> 
     </div> 

     </div> 
     <div class="form-actions"> 
     <button id="createButton" name="createButton" class="btn btn-primary" type="submit">Create</button> 

     </div> 
    </fieldset> 
    </form> 

</body> 
</html> 
+0

возможно дубликат [Проверка и Freemarker] (http://stackoverflow.com/questions/30582952/validation-and-freemarker) –

ответ

0
You should use Spring Form to generate the validations 
For this, you have to add spring tag library path in your html 

Go like this.. 

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

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

    <body> 
    <h2>Course:</h2> 

    <sf:form class="form-horizontal" commandName="course" method=POST> 
     <fieldset> 
      <div class="control-group"> 
      <label class="control-label">Name</label> 
      <div class="controls"> 
       <sf:input id="name" name="name" path="name" class="span5" type="text"/> 
       <sf:errors path="name" cssClass="error" /> 
      </div> 
      </div> 


      <div class="control-group"> 
      <label class="control-label">Description</label> 
      <div class="controls"> 
       <sf:textarea id="category" name="category" path="category" class="span5" rows="3"></textarea> 
       <sf:errors path="category" cssClass="error"/> 
      </div> 
      </div> 


<div class="control-group"> 
      <label class="control-label">Description</label> 
      <div class="controls"> 
       <sf:textarea id="age" name="age" path="age" class="span5" rows="3"></textarea> 
       <sf:errors path="age" cssClass="error"/> 
      </div> 
      </div> 


      </div> 
      <div class="form-actions"> 
      <button id="createButton" name="createButton" class="btn btn-primary" type="submit">Create</button> 

      </div> 
     </fieldset> 
     </form> 

    </body> 
    </html> 
+0

<% @ TagLib адреса URI = "HTTP: // WWW. springframework.org/tags/form "prefix =" sf "%> Это для JSP – Dmitry88

+0

Но это JSP. И я должен сделать для freemarker. <Боб ID = "viewResolver" \t \t класс = "org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver" \t \t р: префикс = "/ страниц /" р: "FTL" суффикс = /> – Dmitry88

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