您现在的位置:首页 >> 前端 >> 内容

validate表单验证后台返回值问题,true与false问题解决办法

时间:2018/7/11 15:23:04 点击: 28

  核心提示:Query Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。科普啥的,可以去直接百度.我直接说我遇到的问题. $(#the...

Query Validate 插件为表单提供了强大的验证功能,让客户端表单验证变得更简单,同时提供了大量的定制选项,满足应用程序各种需求。

科普啥的,可以去直接百度.我直接说我遇到的问题.

	
  $("#theForm").validate({
    rules:{
	  className:{
	    required :true,
	     remote:{
		    url: "/goodsclass/verifyClassName",     //后台处理程序
            type: "post",               //数据发送方式
            data: {                     //要传递的数据
                  "className":
                	  function(){
                	  return $("#className").val();
                	  }
		     }
		}
	  }
	 },
	messages:{
	  className:{
		  required:"分类名称不能为空",
		  remote:"该分类已经存在"}
	}
  });

className 后台可以接收到.进行业务逻辑操作? ?remote只能返回true或false,也就是说后台只能返回布尔类型.

下面是错误的后台代码:

@ResponseBody
	@RequestMapping("/verifyClassName")
	public boolean verifyClassName(String className) {

		if(className != null) {
			return  service.verifyClassName(className);
		}else {
			return  true;
		}
		
	}

这是错误的代码. 本以为 返回值要为布尔类型,所以方法的返回值类型要为布尔类型.

前台会发生406错误,也就是前台无法识别后台传来的数据

实际上我忽略了,这时springMVC,返回的一般要是字符串用来跳页,也就是 在 配置文件 中的视图解析器中直接就跳页了,而不是返回到前台..

因此 我们要这样做

@ResponseBody
	@RequestMapping("/verifyClassName")
	public void verifyClassName1(String className,PrintWriter out) {
		
		if(className != null) {
			out.print(service.verifyClassName(className));
		}else {
			System.out.println("nullnullnull");
			out.print(true);
		}
		
	}

只能通过这种方式 前台才能接收到数据.

说实话,我也是新手,我也不太清楚为什么要这么做

Tags:VA AL LI ID 
作者:网络 来源:u33445687的
请选择您看到这篇文章时的心情: 已有0人表态:
0
0
0
0
0
0
0
0
惊讶 欠揍 支持 很棒 愤怒 搞笑 恶心 不解