Spring MVC中ajax返回json数据

7 篇文章 0 订阅
5 篇文章 0 订阅

Spring MVC返回JSon数据


首先在Spring的配置文件中配置

<pre name="code" class="html"><bean class="org.springframework.web.servlet.view.BeanNameViewResolver">
<property name="order" value="1" />
</bean>
<bean id="jsonView" class="com.byd.intranet.util.JsonView" />
 

BeanNameViewResolver的意思是  <span style="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;">将逻辑视图名字解析为bean的Name属性,从而根据name属性,找定义View的bean</span>

例如在上例中,就是将一个继承View的 JsonView 解析为 jsonView ,从而在controller中可以直接根据 new ModelAndView("jsonView"); 就可以拿取到所需要的view。

我们不想只使用一种视图解析器的话,可以在[spring-dispatcher-name]-servlet.xml定义多个viewResolver:

<bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
 <property name="prefix" value="/jsp/"/>
 <property name="suffix" value=".jsp"/>
 </bean>
 
 <bean id=”beanNameViewResolver” class=”...BeanNameViewResolver”>
 <property name="order" value="1"></property>
 </bean>
 
 <bean id=”beanNameViewResolver” class=”...XmlViewResolver”>
 <property name="order" value="0"></property>
 </bean>

DispatcherServlet会加载所有的viewResolver到一个list中,并按照优先级进行解析。注意order中的值越小,优先级越高。而id为viewResolver的viewResolver的优先级是最低的。





JsonView中的代码是 

public class JsonView extends AbstractView {
	 @Override
	 protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
	         HttpServletResponse response) throws Exception {
	  List<String> list = 
		  new ArrayList<String>();
	  list.add("success");
	  list.add("test");
	  list.add("test1");
	  PrintWriter out = response.getWriter();
	  Gson  json = new Gson ();<span style="white-space:pre">			</span>---这里的Gson是一个google的json解析包
	  String str = json.toJson(list);
	  out.print(str);
        }}
前台直接发送ajax 

function importLines(){
			//拿取选中的明细
			var PONum = $("#importPONum").find("option:selected").text();
			$.ajax({  
		            url : '/BYD_GIB/import/importControlImportLines.do', 
		            type:"post",
		            contentType : "application/x-www-form-urlencoded;charset=utf-8",
		            processData : true,  
		            dataType : "json",  
		            data : {PONum:PONum},
		            success : function(data){
		            	alert("导入成功,请重新查询!"+data);
		            },
				    error: function (xhr, ajaxOptions, thrownError) {
				    	alert("导入成功,请重新查询!");
				    }
			})
		}

到controller层以后直接在原先的方法中返回 return new ModelAndView("jsonView"); 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值