2

我刚开始使用spring MVC,无法在验证失败时显示正确的错误消息。在Spring MVC验证失败后无法显示正确的错误消息

控制器是:

 @RequestMapping(value = "/MobiusDashboardWebsiteContent/csiBatchSubmission", method = RequestMethod.POST) 
     @LogAction(actionPerformed = "submitCSIBatch") 
     public String submitCSIBatch(ManualCSIBatch manualCSIBatch, BindingResult result, Model model, MobiusAuthenticationToken authToken) throws Throwable { 

      ManualCSIBatch mBatch = new ManualCSIBatch(); 
      manualCSIBatch.setBatchUser(getUserName(authToken)); 
      csiBatchValidator.validate(manualCSIBatch, result); 
      if (result.hasErrors()) { 
       LOG.error("Validation errors found for the batch " + manualCSIBatch.getBatchName() + " error code is " + manualCSIBatch.getErrorCode()); 
model.addAttribute("localeList", localeList); 
      model.addAttribute("evaluateAttributeList", evaluateAttibutes); 
      model.addAttribute("csiBatchSubmission", manualCSIBatch);     
return "csiBatchSubmission"; 
      } 
      mBatch.setErrorCode(StatusCode.SUCESS.getCode()); 
      model.addAttribute("csiBatchSubmission", mBatch); 
      return "csiBatchSubmission"; 
     } 

Validator是:

@Override 
    public void validate(Object target, Errors errors) { 
     ManualCSIBatch manualCSIBatch = (ManualCSIBatch) target; 
     boolean isDuplicate = getiMobiusService().checkDuplicateCSIBatchName(manualCSIBatch.getBatchName(), manualCSIBatch.getBatchUser()); 
     if (isDuplicate) { 
      logger.debug("This is a duplicate batch " + manualCSIBatch.getBatchName() + " for this user " + manualCSIBatch.getBatchUser()); 
      errors.rejectValue("batchName", "errors.csi.duplicateBatch", new Object[] { manualCSIBatch.getBatchName() }, null); 
     } 

验证失败时,一切顺利,形式不提交,但误差值没有在UI上填充。

JSP是这样的:

<div class="row"> 

    <label for="batch-name"><spring:message code="csi.label.batchname"/></label><form:input path="batchName" onkeyup="checkDuplciateBatch(this.value);" onblur="checkDuplciateBatch(this.value);"/> 
    <span id="availmsg" style="display:none"></span> 
    <form:errors path="batchName" cssClass="error"/> 
    </div> 

在我看到的所有例子,这是这样的。这里有什么可能是错的?

谢谢,

回答

相关问题