Hi, please help me to find out what i am doing wrong. following is my code;
.jsp file
ActivityValidator.javaCode:<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%> <%@include file="../header.jsp" %> <form:form method="POST" action="activity.htm?action=saveActivity" commandName="activity"> <table> <td>Activity Name : </td> <td><form:input path="activityName" /></td> <td><form:errors path="activityName" cssClass="error" /></td> </tr> <tr> <td><input type="submit" value="Save"></td> <td><input type="reset" value="Clear"></td> </tr> </table> </form:form> <%@include file="../footer.jsp" %>
part of ActivityController.javaCode:import com.towertech.eec.model.Activity; import org.springframework.validation.Errors; import org.springframework.validation.ValidationUtils; import org.springframework.validation.Validator; public class ActivityValidator implements Validator{ @Override public boolean supports(Class clazz) { return Activity.class.isAssignableFrom(clazz); } @Override public void validate(Object target, Errors errors) { Activity obj = (Activity)target; if(obj.getActivityName()!= null && obj.getActivityName().length()>100){ errors.rejectValue("activityName", "lengthExceed.activityName"); } } }
applicationContext.xmlCode://==called when add button pressed in in view page public ModelAndView addActivity(HttpServletRequest request, HttpServletResponse response,Activity activity) throws Exception { if(map.get("CAN_ADD").toString().equals("Y")){ ModelAndView mv = new ModelAndView("setup/addActivity", "refData", map); mv.addObject("activity",activity); return mv; } else{ map.put("msg",Utility.setDisplayMessage("You do not have right to add new Activity.", "fail")); return new ModelAndView("setup/viewActivity", "refData", map); } } //==called when save button pressed in .jsp public ModelAndView saveActivity(HttpServletRequest request, HttpServletResponse response, Activity activity) throws Exception { boolean flag=false; String msg; if(map.get("CAN_ADD").toString().equals("Y")){ flag = this.serviceFactory.getActivityService().saveActivity(activity, userName); if(flag){ msg=Utility.setDisplayMessage("New activity added successfully", "success"); }else{ msg=Utility.setDisplayMessage("Error occured while adding new activity", "fail"); } map.put("msg",msg); } else{ map.put("msg",Utility.setDisplayMessage("You do not have right to add new Activity.", "fail")); return new ModelAndView("setup/viewActivity", "refData", map); } ModelAndView mv = new ModelAndView("setup/addActivity", "refData", map); mv.addObject("activity",activity); return mv; }
messages.propertiesCode:<bean id="activityController" class="com.towertech.eec.controller.ActivityController"> <property name="methodNameResolver" ref="actions"/> <property name="serviceFactory" ref="serviceFactory"/> <!-- Map a validator --> <property name="validators"> <bean class="com.towertech.eec.validator.ActivityValidator" /> </property> </bean> <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basename" value="/WEB-INF/messages" /> </bean>
following error occur when i try to save by adding Activity Name field greater than 100 characters;Code:required.activityName = Username is required! lengthExceed.activityName = exceeded
thank you in advanceCode:HTTP Status 500 - Errors binding onto object 'command'; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors type Exception report message Errors binding onto object 'command'; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors description The server encountered an internal error that prevented it from fulfilling this request. exception org.springframework.web.bind.ServletRequestBindingException: Errors binding onto object 'command'; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors Field error in object 'command' on field 'activityName': rejected value [12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901]; codes [lengthExceed.activityName.command.activityName,lengthExceed.activityName.activityName,lengthExceed.activityName.java.lang.String,lengthExceed.activityName]; arguments []; default message [null] org.springframework.web.bind.ServletRequestDataBinder.closeNoCatch(ServletRequestDataBinder.java:133) org.springframework.web.servlet.mvc.multiaction.MultiActionController.bind(MultiActionController.java:540) org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:468) org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:408) org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.towertech.eec.filter.RequestFilter.doFilter(RequestFilter.java:64) org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) root cause org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors Field error in object 'command' on field 'activityName': rejected value [12345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901]; codes [lengthExceed.activityName.command.activityName,lengthExceed.activityName.activityName,lengthExceed.activityName.java.lang.String,lengthExceed.activityName]; arguments []; default message [null] org.springframework.web.bind.ServletRequestDataBinder.closeNoCatch(ServletRequestDataBinder.java:135) org.springframework.web.servlet.mvc.multiaction.MultiActionController.bind(MultiActionController.java:540) org.springframework.web.servlet.mvc.multiaction.MultiActionController.invokeNamedMethod(MultiActionController.java:468) org.springframework.web.servlet.mvc.multiaction.MultiActionController.handleRequestInternal(MultiActionController.java:408) org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882) org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789) javax.servlet.http.HttpServlet.service(HttpServlet.java:641) javax.servlet.http.HttpServlet.service(HttpServlet.java:722) org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:393) com.towertech.eec.filter.RequestFilter.doFilter(RequestFilter.java:64) org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)


Reply With Quote