2015-06-01 4 views
0

Мы должны сделать проверку на странице, в случае пустых полей, чтобы отобразить сообщение. Это мой класс, метод контроллера и настройки сообщений. Я не могу попасть на страницу сообщений об ошибках Freemarker.Validation and Freemarker

public class CreateCourseDTO { 
@NotEmpty 
private String name; 
@NotEmpty 
private String category; 
@NotEmpty 
private String description; 
@NotEmpty 
private String links; 

public CreateCourseDTO() { 
} 


NotEmpty.createCourseDTO.name = Name is required! 
NotEmpty.createCourseDTO.category = Category is required! 
NotEmpty.createCourseDTO.description = Description is required! 
NotEmpty.createCourseDTO.links = Links is required! 


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


@RequestMapping(value = "/create", method = RequestMethod.POST, params = { 
     "name", "category", "description", "links" }) 
public String createCoursePost(Model model, HttpSession session, 
     HttpServletRequest request, @Valid CreateCourseDTO createCourseDTO, 
     BindingResult result) { 
    model.addAttribute("eMail", session.getAttribute("eMail")); 

    String title = request.getParameter("name"); 
    String description = request.getParameter("description"); 
    String links = request.getParameter("links"); 
    String category = request.getParameter("category"); 

    if (result.hasErrors()) { 

Как исправить страницу freemarker?

<#import "/spring.ftl" as spring /> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"/> 
<link rel="stylesheet" type="text/css" href="./css/style.css"/> 
<style> 
.error { 
color: #ff0000; 
} 

.errorblock { 
color: #000; 
background-color: #ffEEEE; 
border: 3px solid #ff0000; 
padding: 8px; 
margin: 16px; 
} 
</style> 
</head> 
<body> 
    <div class="container"> 
    <header> 
    <h1> 
     Create Course 
     <div class="logout"> 
     <span id="currentUserLogin"> 
      ${eMail} 
     </span> 
     <a href="logout.html"> 
      <i class="icon-off"></i> 
     </a> 
     </div> 
    </h1> 
    </header> 



    <form class="form-horizontal" commandName="createCourseDTO" 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">Category</label> 
     <div class="controls"> 
      <select id="category" name="category" class="span5"> 
      <option></option> 
      <#list listCategories as category> 
      <option>${category.category}</option> 
      </#list> 
     </select> 
     <@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 class="control-group"> 
     <label class="control-label">Links</label> 
     <div class="controls"> 
      <textarea id="links" name="links" class="span5" rows="3"></textarea> 
      <@spring.showErrors "<br>" /> 
     </div> 
     </div> 
     <div class="form-actions"> 
     <button id="createButton" name="createButton" class="btn btn-primary" type="submit">Create</button> 

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

    <a class="btn" href="courses.html">Cancel</a> 
</div> 

ответ

0

Пока этого не случилось.

<#import "/spring.ftl" as spring /> 
<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="utf-8"/> 
<link rel="stylesheet" type="text/css" href="./css/style.css"/> 
</head> 
<body> 
<div class="container"> 
    <header> 
    <h1> 
     Create Course 
     <div class="logout"> 
     <span id="currentUserLogin"> 
      ${eMail} 
     </span> 
     <a href="logout.html"> 
      <i class="icon-off"></i> 
     </a> 
     </div> 
    </h1> 
    </header> 

    <form action="create" method="POST"/> 
    <fieldset> 
    <@spring.bind "сreateCourseDTO" /> 
    <@spring.showErrors '*', 'errors' /> 

     <div class="control-group"> 
     <label class="control-label">Name</label> 
     <div class="controls"> 

      <@spring.formInput "createCourseDTO.name" ""/> 
     <@spring.showErrors '<br>',"error" /> 

     </div> 
     </div> 
     <div class="control-group"> 

     <label class="control-label">Category</label> 
     <div class="controls"> 
      <@spring.formSingleSelect "createCourseDTO.category" categoryList "" /> 
      <option></option> 
      <#list listCategories as category> 
      <option>${category.category}</option> 
      </#list> 
     </select> 
      <@spring.showErrors "createCourseDTO.category","error" /> 
     </div> 
     </div> 

     <div class="control-group"> 
     <label class="control-label">Description</label> 
     <div class="controls"> 
      <@spring.formInput "createCourseDTO.description"/> 
      <@spring.showErrors "createCourseDTO.description","error" /> 
     </div> 
     </div> 
    <div class="control-group"> 
      <label class="control-label">Links</label> 
     <div class="controls"> 
     <@spring.formInput "createCourseDTO.links"/> 
     <@spring.showErrors "createCourseDTO.links","error" /> 
     </div> 
     </div> 
     <div class="form-actions"> 
     <button id="createButton" name="createButton" class="btn btn-primary" type="submit">Create</button> 

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

    <a class="btn" href="courses.html">Cancel</a> 
    </div> 
    </body> 
    </html> 

выдает ошибку

==> Назначение: состояние = springMacroRequestContext.getBindStatus (путь) [на линии 120, колонка 9 в spring.ftl] в пользовательской директиве связываются [по линии 159, колонка 5 в spring.ftl] в директиве пользователя spring.formInput [в строке 33, столбец 15 в страницах/create.ftl]

< на линии @ spring.formInput "createCourseDTO.name" "" />

и у меня есть исправление d bin

<bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver" 
    p:cache="true" p:prefix="/pages/" p:suffix=".ftl" p:exposeSpringMacroHelpers="true"/>