今天在用ajax做表单验证的时候,碰到了一个问题。
表单是和spring的SimpleFormController绑定的,我监听了一个text的onblur,当离开文本框的时候做验证。function isExist(roomName){
var url = "/sie/ajaxCheckRoomName.html";
var params = "roomName="+roomName;
var method = "get";
var loader = new net.ContentLoader(url, setAdvice, null, method, params);
}这是控制器的配置文件:<!-- 控制器 -->
<bean id="addClassroomController"
class="org.sie.web.AddClassroomController">
<property name="classroomService" ref="classroomService" />
<property name="commandClass"
value="org.sie.persistence.hibernate.model.Classroom" />
<property name="formView" value="classroom" />
<property name="successView" value="classroom" />
</bean>
<bean id="ajaxCheckRoomNameServlet"
class="org.sie.web.AjaxCheckRoomNameServlet">
<property name="classroomService" ref="classroomService" />
</bean>
<!-- 处理器映射 -->
<bean
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="mappings">
<props>
<prop key="/classroom.html">
addClassroomController
</prop>
<prop key="/ajaxCheckRoomName.html">
ajaxCheckRoomNameServlet
</prop>
</props>
</property>
</bean>当发生onblur事件的时候,我发现程序跳转到了addClassroomController里的referenceData(HttpServletRequest request)方法,很奇怪,是不是因为这个表单和表单控制器绑定了,一切事件都会被控制器捕捉?

解决方案 »

  1.   

    本意是想让那个ajaxCheckRoomNameServlet处理的,结果跑到addClassroomController里去了
      

  2.   

    如果随便输入一个url,http错误是404,正确输入ajaxCheckRoomNameServlet的url,错误是500,但是跑到addClassroomController里去了
      

  3.   

    在controller的referenceData里面,
    System.out.println(request.getPathInfo() );
    System.out.println(request.getQueryString() );都输出null。