spring mvc-springMVC controller中方法接收参数问题,怎么接收json对象

问题描述

springMVC controller中方法接收参数问题,怎么接收json对象
后台配置及代码

 <bean id=""paramMethodResolver"" class=""org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"">    <property name=""paramName"" value=""method""></property> </bean> <!-- 下边配置请求 --> <bean name=""/busi/userInfo.action"" class=""com.mxci.busi.control.impl.UserInfoControllerImpl"">        <property name=""methodNameResolver"">            <ref bean=""paramMethodResolver""/><!-- 引用上边那个方法名称解析器 -->        </property> </bean>

public String regist(HttpServletRequest request HttpServletResponse response UserInfo userInfo) {
// TODO Auto-generated method stub
LOGGER.info(""[CR]商户注册开始.请求商户信息:""+userInfo);
MxciInsideResult mxciInsideResult = userInfoService.busiCustRegist(userInfo);//调用
//组装响应数据,并初始化进MxciResponseBody里面
MxciResponseServiceImpl mxciResponseService
= new MxciResponseServiceImpl(mxciInsideResult.getRecode()mxciInsideResult.getReData()response);
mxciResponseService.response();//响应结果到客户端
mxciResponseService=null;//置空
return null;
}

目前请求地址这样写是可以封装层userId对象的http://127.0.0.1:8090/mxciBusiness/busi/userInfo.action?method=regist&userId=wangyan&password=900613&certificateId=50022419901231739X&phoneNo=18696668026

请问怎么样修改才能用下边的地址访问能让后台接收到对象呢???
http://127.0.0.1:8090/mxciBusiness/busi/userInfo.action?method=regist&userInfo={""userId"": ""wangyan888""customerId"": ""BUSI20160125000001""lastErrorTime"": nullloginDate"": nullloginErrNum"": 0password"": """"phoneNo"": ""18696668026""reginDate"": nullstatus"": 0valiDate"":null}

解决方案

可以以 String 形式去接收,然后用fastjson 去格式化成json对象。 感兴趣可以去看一看fastjson

解决方案二:
我想知道为什么要这样子传值过去

解决方案三:
这样传值号奇葩,,思路偏了吧

解决方案四:
jQuery用ajax想后台传递参数的时候把参数设置为{""userId"": ""wangyan888""customerId"": ""BUSI20160125000001""lastErrorTime"": nullloginDate"": nullloginErrNum"": 0password"": """"phoneNo"": ""18696668026""reginDate"": nullstatus"": 0valiDate"":null}命名为sdata,在ajax的data参数上使用JSON.stringify(sdata)方法把sdata格式转换就好了,controller里接收的对象加上@RequestBody

解决方案五:
可以通过@RequestBody注解来实现

import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.ResponseBody;   @RequestMapping(""/"")   @ResponseBody   public JsonDto someFunction(@RequestBody Dto dto) {       return null;   }

xml 里面也需要配置一下支持 json

我的配置可能有点老了

    <bean            class=""org.springframework.web.servlet.view.ContentNegotiatingViewResolver"">        <property name=""order"" value=""1""/>        <property name=""mediaTypes"">            <map>                <entry key=""json"" value=""application/json""/>                <entry key=""xml"" value=""application/xml""/>                <entry key=""htm"" value=""text/html""/>                <entry key=""jsp"" value=""text/html"" />            </map>        </property>        <property name=""defaultViews"">            <list>                <bean                        class=""org.springframework.web.servlet.view.json.MappingJackson2JsonView"">                </bean>            </list>        </property>        <property name=""ignoreAcceptHeader"" value=""true""/>    </bean>

使用的是Spring 4.1.7.RELEASE

时间: 2024-09-19 14:59:56

spring mvc-springMVC controller中方法接收参数问题,怎么接收json对象的相关文章

ajax spring-ajax方式提交表单,spring mvc的Controller中怎么不能返回视图

问题描述 ajax方式提交表单,spring mvc的Controller中怎么不能返回视图 ajax请求到springmvc的Controller后,请求成功后为什么不跳转到jsp?就是这句:return new ModelAndView(""/sys/selectAccount"");不用ajax请求就可以 解决方案 使用ajax提交的请求 控制器中的重定向 或者请求转发都是无效的 ajax要跳转页面 只能把你要跳转的页面发送到前端 前端ajax的回调函数使用前

如何在spring MVC的controller中实现将版本发布到外部可下载的网段服务器上

问题描述 如何在spring MVC的controller中实现将版本发布到外部可下载的网段服务器上 如何在spring MVC的controller中实现将版本发布到外部可下载的网段服务器上 如果地址不存在,则需创建新的目录 解决方案 vjbhgvhjvlhjbhjbhjbhjb

spring mvc 修改Controller中mapping地址,如何做到不重启tomcat应用?

问题描述 spring mvc 修改Controller中mapping地址,如何做到不重启tomcat应用? 大家在使用spring mvc过程中有没有遇到过这样的情况? 将Controller层的@RequestMapping("/hello")地址修改一下,这时需要重新启动tomcat服务吗?如果不需要重新启动就可以访问新的url地址,请问大家是如何做到的? 解决方案 热部署,,jrebel,或者采用其他的服务器

spring mvc-maven spring MVC注解controller页面访问不到。。(新手)

问题描述 maven spring MVC注解controller页面访问不到..(新手) dispatcher-servlet.xml -------------------------------------------------------------------------- <!-- 添加注解驱动 --> <mvc:annotation-driven /> <!-- 默认扫描的包路径 --> <context:component-scan base-p

关于REST风格的SpringMVC Controller 传递多个参数的问题

问题描述 关于REST风格的SpringMVC Controller 传递多个参数的问题 /** * * * Description: 预更新操作根据用户名查询用户信息 然后数据交给携带体 展示到视图 REST风格: /更新的用户的用户名/update * @param username @PathVariable修饰 表示形参同URL中的请求参数 * @param model 携带数据的Model * @return 视图页面/WEB-INF/jsp/user/update页面 * */ @R

spring mvc 在eclipse中启动tomcat提示错误,什么原因

问题描述 spring mvc 在eclipse中启动tomcat提示错误,什么原因 严重: StandardWrapper.Throwablejava.lang.NoClassDefFoundError: javax/servlet/AsyncListener at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) at

javascript-js中的java代码如何访问js中方法的参数??见图

问题描述 js中的java代码如何访问js中方法的参数??见图 如何让1处的值传到2处这里?? 解决方案 需要用ajax提交你的index到服务器,服务器端无法直接获取客户端js的变量值 <script src=""http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.1.min.js""></script><script type=""text/javascript&qu

如何在springmvc controller中实现点击某个功能,在页面显示相应的操作

问题描述 如何在springmvc controller中实现点击某个功能,在页面显示相应的操作 比如:操作记录页面有操作人,时间,ip,类型(增,删,改,查): 操作某个功能,页面上就会自动新增一条记录. 解决方案 要即时显示,用ajax就好了 参考:http://download.csdn.net/download/zhaoying1992/9136855 解决方案二: 新增一条记录就是向数据库插入一条数据,然后查一遍就好了

java语法-java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗

问题描述 java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗 java中一个方法的参数既可以放匿名对象,也可以放匿名类,这么理解对吗 解决方案 看需要,一般来说匿名类用来实现接口.匿名对象就是一般的对象.单单从语法上来说,都可以. 解决方案二: 还是与些区别的,匿名类用来实现接口.匿名对象其实就是一般的对象.