我无法在jsp页面中收到错误消息。实际上,我试图在数据库中检查用户名和密码是否正确.Iam从dao抛出dataexception并在控制器上捕获检查以下代码
SimpleFormController
public ModelAndView onSubmit(HttpServletRequest request, HttpServletResponse response,Object command,BindException errors) throws Exception {
log.info("onSubmit handleRequest method"+request.getParameter("username"));
boolean isError=false;
String username="",password="",errMessage="";
username=request.getParameter("username");
password=request.getParameter("password");
UserBean ubean=null;
try{
ubean=userservice.chkUsername(username,password);
}catch(DataException ex){
errMessage=ex.getMessage();
isError=true;
//throw ex;
}
if(isError==true){
System.out.println("errMessage handleRequest method"+errMessage);
errors.reject(errMessage);
return showForm(request, response, errors);
}
log.info("After shownform method called");
HttpSession session=request.getSession(true);
session.setAttribute("User",ubean);
return new ModelAndView("UserPage");
}
public ModelAndView showForm(HttpServletRequest request, HttpServletResponse response,BindException errors) throws Exception {
//Displaying Count size
log.info("Show form Error Count"+errors.getErrorCount()+getFormView());
return new ModelAndView(getFormView());
}
我试图在jsp页面中以两种方式显示,即
Jsp页面: -
1)
<spring:hasBindErrors name="UserBean">
<h3>You have errors in your input!</h3>
<font color="red">
<c:forEach items="${errors.allErrors}" var="error">
<spring:message code="${error.code}" text="${error.defaultMessage}"/>
</c:forEach>
</font>
</spring:hasBindErrors>
2) <form:form action="userpage.htm" method="post" onsubmit="javascript:fun()">
<tr>
<form:errors path="*"/>
--------
--------
</form:form>
我试图在jsp中以上两种方式进行调度。但最后我没有得到任何东西。上面有任何问题代码.plz帮帮我
答案 0 :(得分:0)
我用来形成验证的方法如下:
将“validator”属性添加到控制器:
<bean class="YourController">
...
<!-- Map a validator -->
<property name="validator">
<bean class="CustomerValidator" />
</property>
...
</bean>
创建实现org.springframework.validation.Validator的类并实现两个方法:支持和验证:
public class CustomerValidator implements Validator{
@Override
public boolean supports(Class clazz) {
}
@Override
public void validate(Object target, Errors errors) {
}
}
我会从控制器类的主体中删除验证逻辑。
请查看以下示例,我相信您会发现它很有用:Spring MVC form handling example
答案 1 :(得分:0)
您是否尝试过使用BindingResult.hasError()? 并指定要在哪个字段中显示错误。
还要确保您的错误代码存在于您的proerpty文件中。
如果使用ModelAttribute将模型绑定到视图,则更容易处理jsp中的错误。如果你愿意,我可以在这里放一些代码。
干杯。