0 0

springMVC3.2 返回json数据5

通过ajax调用后台,返回json时,ajax报parsererror错误。

之前有个项目就按这样写的可以实现,现在就不行了。不知道怎么回事,帮我看一下吧。

springmvc的配置文件:

 <!-- springMVC.xml配置文件 -->
<mvc:annotation-driven />

<!-- 把标记了@Controller注解的类转换为bean -->    
<context:component-scan base-package="com.rjxy" />


<!-- 视图处理器 -->
<bean id="jspViewResolver"  
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
        <property name="prefix" value="/WEB-INF/jsp/" />  
        <property name="suffix" value=".jsp" />  
        <property name="contentType" value="text/html;charset=utf-8" />
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> 
</bean>

<!-- 对静态资源文件的访问-->  
 	<mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>  
    <mvc:resources mapping="/js/**" location="/js/" cache-period="31556926"/>  
    <mvc:resources mapping="/css/**" location="/css/" cache-period="31556926"/>

 

 

Controller:

@RequestMapping("changeProfessionArea.action")
	public @ResponseBody List<ProfessionArea> changeProfessionArea(HttpServletRequest request){
		String area_id = request.getParameter("area_id");
		int length = 6;
		System.out.println("area_id: "+area_id+"  length: "+length);
		List<ProfessionArea> areaList = examService.getProfessionAreaList(length, area_id);
		return areaList;
	}

 

 

前台调用:

function changeSubjectOne(subID){
	alert(subID);
	$.ajax({ 
		type:"POST",
		url:"changeProfessionArea.action",
		cache: false, //将不会从浏览器缓存中加载请求信息。
		data:{area_id:subID},
		dataType: 'json',
		success:function(json){
		  alert(json[0].area_name);
		  var selc = document.getElementById("subTwo");
		  selc.length = 0;
		  var op;
		  op=new Option('--请选择第二学科--',0);
		  selc.options.add(op);
		  for (var i = 0; i < json.length; i++) {
		  	op = new Option(json[i].area_name,json[i].area_id);
			selc.options.add(op);
		   }
		  document.getElementById("subTwo").disabled=false;
	         },
		error:function(XMLHttpRequest, textStatus, errorThrown){
		       alert("Error")
		       alert(XMLHttpRequest.status);
                       alert(XMLHttpRequest.readyState);
                       alert(textStatus);
			       }
		       }); 
		}

 

 

导入了两个包:

     jackson-core-asl-1.8.7.jar

     jackson-mapper-asl-1.8.7.jar

 

jquery 用的是 jquery-1.4.2.min.js。

ajax总执行error 显示 parsererror。之前有个项目也是这么写的,一个样子,那个就可以。现在这个不知道怎么回事。帮我解决一下。

 

 


问题补充:我解决了。原来是hibernate中配置的多对一关系中的问题。在多对一关系中的的一方的set 集体的get 方法前面添加@JsonIgnore就可以了。如:
@JsonIgnore public Set getStuedntses() { 
        return studentses; 
    } 
在返回json时,我的控制台报:
at org.codehaus.jackson.map.ser.BeanSerializer.serialize(BeanSerializer.java:142)
at org.codehaus.jackson.map.ser.BeanPropertyWriter.serializeAsField(BeanPropertyWriter.java:428)
添加@JsonIgnore这个注解后,无论你是lazy="true" or lazy="false"他都不会去序列化其他的了!
2013年8月21日 17:12

9个答案 按时间排序 按投票排序

0 0

springmvc代码下载:http://www.zuidaima.com/share/search.htm?key=springmvc

2014年7月23日 13:41
0 0

你的问题解决没呀 我昨天也遇到这个问题了 求指教

2013年8月22日 10:49
0 0

你的问题解决没呀 我昨天也遇到这个问题了,求指教

2013年8月22日 10:48
0 0

把data:{area_id:subID}改为data:"area_id="+subID试试

2013年8月22日 09:09
0 0

用火狐的firebug调试下,看结果。 或者用console.info()来观察结果。

2013年8月22日 08:33
0 0

1 在控制台看有没有数据还回,
2 看数据格式是否正确

2013年8月21日 19:37
0 0

<bean
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="messageConverters">
      <list>
        <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> 
              <property name = "supportedMediaTypes"> 
                 <list> 
                     <value>text/plain;charset=UTF-8</value> 
                 </list> 
              </property> 
          </bean> 
         
        <bean
         //这哥要配置上。能用respongbody class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
    
      </list>
    </property>
  </bean>

2013年8月21日 17:56
0 0

最有可能就是areaList为null了,如果为null,请回传“{}”不然json解析不了。请跟踪一下传输数据

2013年8月21日 17:42
0 0

用chrome或firefox的firebug调试器看一下网络传输了些什么数据回来

2013年8月21日 17:22

相关推荐

    jack-json包和配置,springmvc3.2及以下json格式支持

    在IT行业中,JSON(JavaScript...通过以上步骤,即使在Spring MVC 3.2及以下版本,我们也能成功地使用Jackson(jack-json)库处理JSON数据。这个解决方案对于那些无法升级到更高版本Spring的项目来说,无疑是一大福音。

    基于springMVC3.2的REST源码,结合了jquery和json

    在这个项目中,jQuery可能被用来发送异步请求到REST API,并处理返回的JSON数据。 1. **$.ajax()**:使用jQuery的$.ajax()函数发送HTTP请求,可以通过dataType参数指定JSON格式。 2. **$.getJSON()**:这是一个...

    springMVC3.2实现后台校验

    Spring MVC提供了多种方式,比如使用ModelAndView对象添加错误信息,或者通过JSON响应返回错误信息。这通常需要结合视图层技术(如JSP、Thymeleaf等)或者Ajax请求来实现。 总的来说,Spring MVC 3.2通过集成JSR ...

    springmvc3.2_practice

    《SpringMVC 3.2 实战指南》 在Java Web开发领域,SpringMVC作为Spring框架的一部分,已经成为构建高效、灵活的Web应用程序的重要选择。本实战指南将深入探讨SpringMVC 3.2版本的核心特性,帮助开发者掌握这一强大...

    SpringMVC 传送JSON数据到客户端

    SpringMVC通过@ResponseBody传送json字符串到客户端,实现了REST接口远程调用功能,demo中使用的版本为spring3.2,代码中用到了注解,代码直接部署运行,已经通过测试(如在浏览器中输入...客户端返回后台传递的json格式数据)

    springmvc 3.2.8 restful支持

    通过`@RequestBody`和`@ResponseBody`注解,Spring能够将JSON数据绑定到方法参数或直接将方法返回值转换为JSON。 6. **Tomcat 8.0**:作为应用服务器,Tomcat 8.0对Servlet 3.0规范有良好的支持,这对于Spring MVC...

    SpringMVC+Spring3.2+Hibernate4整合

    9. **编写Controller层**:处理HTTP请求,调用Service层方法,返回视图或JSON数据。 10. **部署与测试**:将项目打包成WAR文件,部署到Tomcat服务器,通过浏览器测试各个功能是否正常。 通过以上步骤,我们就完成了...

    springMVC接收和返回参数各种情况整合

    ##### 3.2 JSON 数据的处理 当前端发送的数据为JSON格式时,可以使用`@RequestBody`注解配合实体类或自定义的VO(Value Object)来接收这些数据。 **示例:** **前端发送数据:** ```json { "Entity": { "code...

    Spring4+SpringMVC4.0+Mybatis3.2框架整合例子(SSM) 自动生成代码

    7. **Controller层**:创建Controller类,处理HTTP请求,调用Service方法,返回视图或JSON数据。 **自动生成代码** 这个例子可能包含代码生成工具的使用,如Mybatis的Generator,它可以自动生成BO实体类、Mapper...

    SpringMVC学习课堂笔记

    利用`@RequestBody`和`@ResponseBody`注解进行JSON数据的读写。 ##### 6.5 RESTful支持 使用`@GetMapping`、`@PostMapping`等注解实现RESTful风格的服务。 ##### 6.6 拦截器 自定义拦截器实现请求前后的处理逻辑...

    springmvc课堂笔记

    除了基本的功能外,SpringMVC还提供了一系列高级功能,如参数绑定、数据回显、文件上传、JSON数据交互等。 ##### 6.1 参数绑定 - **简单类型绑定**:直接将请求参数与控制器方法参数绑定。 - **POJO类型绑定**:...

    跟我学SpringMVC

    - **视图返回**:解释如何在控制器方法中返回视图名称,并将视图和模型数据传递给前端显示。 ##### 3.3 处理器拦截器详解 - **拦截器的概念**:处理器拦截器是SpringMVC提供的一种机制,可以在控制器执行前后进行...

    springMVC教程

    SpringMVC 可以轻松地与 jQuery 的 AJAX 功能结合,通过 JSON 或 XML 进行前后端的数据交换,实现异步更新页面。 **拦截器** SpringMVC 的拦截器可以对请求进行预处理和后处理,例如实现登录验证、日志记录等功能...

    springmvc独立运行包

    3. **更强大的数据绑定和验证**:增强了数据绑定的能力,例如支持 JSON 数据绑定和复杂类型验证。 4. **增强的注解支持**:如 `@ModelAttribute` 和 `@SessionAttributes` 注解的改进,提供了更灵活的数据管理。 5...

    spring3.2mvc+mybatis3.2.8整合完整版,可运行

    在IT行业中,SpringMVC和MyBatis是两个非常重要的框架,它们分别负责Web应用程序的模型-视图-控制器(MVC)架构和数据库操作。本项目整合了Spring 3.2 MVC与MyBatis 3.2.8,提供了一个可运行的完整版本,同时也包含...

    MyBatis4.0整合Spring3.2

    在本项目中,我们主要探讨的是如何将MyBatis4.0与Spring3.2进行集成,同时结合SpringMvc创建一个完整的项目模型。这个模型还引入了Google的Protocol Buffer进行序列化处理,并选择了logback和SLF4J作为日志记录系统...

    springmvc3.2.0开发架包

    9. **REST 支持**:包括支持 JSON 和 XML 数据交换,以及 HTTP 方法的处理(GET、POST、PUT、DELETE 等)。 在实际项目中,开发者还需要注意与其他 Spring 组件的集成,如 Spring Core、Spring AOP、Spring JDBC、...

    spring5mvc第一天【大纲笔记】.zip

    SpringMVC会自动进行数据转换,如将JSON转换为Java对象。 2.3 请求头的绑定 通过@RequestHeader注解可以将请求头的值绑定到方法参数。 三、常用注解 3.1 @RequestMapping 此注解用于映射HTTP请求,可以用于类或...

    springmvc 中文手册详细带书签.pdf

    这些模块涵盖了对JDBC、Hibernate、JPA、JDO和iBatis等ORM框架的支持,以及对XML、JSON等数据格式的转换支持。 - Web模块:支持创建Web应用程序,包括Spring Web MVC, Web-Servlet, Web-Struts, Web-Portlet模块。...

    springmvc-dubbo整合demo

    - **视图(View)**:用于显示数据,通常是指 HTML 页面或 JSON 数据等。 - **控制器(Controller)**:作为模型和视图之间的桥梁,接收用户请求并调用相应的服务层方法处理业务逻辑。 ##### 1.2 Dubbo Dubbo 是...

Global site tag (gtag.js) - Google Analytics