【发布时间】:2016-10-28 22:50:45
【问题描述】:
我正在使用 spring 表单验证来验证我的表单输入字段..我遇到了 BindingResult 问题,即使我的输入字段为空/空,result.hasErrors() 总是返回 false..我管理所有导入和对我来说一切都很好。但正如我所说,我的验证不起作用,需要帮助来解决这个问题......
表格:
<%@include file="././Header.jsp"%>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
<script src="<c:url value="/js/smlibray/emailCommunicate.js"/>"></script>
<link href="<c:url value="/js/jquery-ui.css"/>" rel="stylesheet" />
<script src="<c:url value="/js/jquery-ui.js"/>"></script>
<input type="hidden" name="applicationUrl" id="applicationUrl"
value="${pageContext.request.contextPath}">
<div class="container sec-container middle-sec">
<div class="form-fields row">
<div class="col-md-12 col-sm-12 col-xs-12">
<form:form class="form-horizontal policy-form" id="emailCommu-form" method="POST" action="sendEmailMessage" commandName="emailForm">
<div class="form-group">
<h1 class="email-header">SiteMidner Email Notification</h1>
<c:choose>
<c:when test="${not empty sMsg}">
<div class="email-Commu-SMsg">* ${sMsg}</div>
</c:when>
<c:otherwise>
<c:if test="${not empty eMsg}">
<div class="email-Commu-EMsg">* ${eMsg}</div>
</c:if>
</c:otherwise>
</c:choose>
<div class="form-emailCommu">
<label for="emailSub-txtArea" class="email-ContentHead">Enter
the Subject Line for the Email : </label>
<div class="email-sm-textDiv">
<form:textarea path="emailSubject" name="emailSubject" id="emailSubTxtArea"
placeholder="Email Subject"/>
</div>
<span><form:errors path="emailSubject" cssClass="error" /></span>
</div>
<div class="form-emailCommu">
<label for="emailBod-txtArea" class="email-ContentHead">Enter
the Message Body for the Email : </label>
<div class="email-sm-textDiv">
<form:textarea path="emailMsg" name="emailMsg" id="emailBodyTxtArea"
placeholder="Email Body"/>
</div>
<span><form:errors path="emailMsg" cssClass="error" /></span>
</div>
<div class="email-sendButton">
<input type="submit" class="styled-button" value="Send Email"></input>
</div>
</div>
</form:form>
</div>
<!--form-fields close -->
</div>
</div>
控制器代码:
@RequestMapping(value="/sendEmailMessage",method=RequestMethod.POST)
public ModelAndView sendEmailCommunication(@Valid @ModelAttribute("emailForm") EmailReqInfo emailInfo,BindingResult result,HttpServletRequest request){
ModelAndView view = null;
StringBuffer sMsg = new StringBuffer();
StringBuffer eMsg = new StringBuffer();
boolean isAdmin = false;
try{
String loggedInUser = request.getHeader("sm_user").trim();
isAdmin = getUserAdminRights(request);
if(result.hasErrors()){
view = new ModelAndView("EmailCommunication");
view.addObject("isAdmin", isAdmin);
return view;
}
else{
String emailSubject = emailInfo.getEmailSubject();
String emailMsg = emailInfo.getEmailMsg().replace("\n", "<br />\n");
boolean status = emailService.sendEmailCommuncation(emailSubject,emailMsg);
if(status){
sMsg.append(" Sending SiteMinder Notification Email was Success.");
}
else{
eMsg.append(" Oops! Something went wrong while sending Email Notification. Pls check logs");
}
}
}
catch(Exception ex){
ex.printStackTrace();
eMsg.append("Oops! Something went wrong while sending Email Notification. Pls check logs");
}
view = new ModelAndView("EmailCommunication");
view.addObject("emailForm", new EmailReqInfo());
view.addObject("isAdmin", isAdmin);
view.addObject("sMsg", sMsg.toString());
view.addObject("eMsg", eMsg.toString());
return view;
}
电子邮件型号:
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;
public class EmailReqInfo
{
@NotNull @NotEmpty
@Size(min=1)
private String emailSubject;
@NotNull @NotEmpty
private String emailMsg;
public String getEmailSubject() {
return emailSubject;
}
public void setEmailSubject(String emailSubject) {
this.emailSubject = emailSubject;
}
public String getEmailMsg() {
return emailMsg;
}
public void setEmailMsg(String emailMsg) {
this.emailMsg = emailMsg;
}
}
我的 spring-mvc.xml 中有必要的注释
<mvc:annotation-driven>
<mvc:message-converters register-defaults="false">
<bean id="jacksonMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
修复验证需要帮助..谢谢
【问题讨论】:
-
您在绑定结果中遇到哪些字段错误?你能发帖吗
-
嗨 Sarvana,我没有收到任何错误,即,即使我向模型发送了空输入,result.hasErrors() 总是返回 false,因此它没有进入 if 条件。我没有看到任何错误..任何想法,我哪里出错了..
标签: java spring validation jsp spring-mvc