`
jinnianshilongnian
  • 浏览: 21482397 次
  • 性别: Icon_minigender_1
博客专栏
5c8dac6a-21dc-3466-8abb-057664ab39c7
跟我学spring3
浏览量:2414212
D659df3e-4ad7-3b12-8b9a-1e94abd75ac3
Spring杂谈
浏览量:3005334
43989fe4-8b6b-3109-aaec-379d27dd4090
跟开涛学SpringMVC...
浏览量:5637392
1df97887-a9e1-3328-b6da-091f51f886a1
Servlet3.1规范翻...
浏览量:259408
4f347843-a078-36c1-977f-797c7fc123fc
springmvc杂谈
浏览量:1595906
22722232-95c1-34f2-b8e1-d059493d3d98
hibernate杂谈
浏览量:249881
45b32b6f-7468-3077-be40-00a5853c9a48
跟我学Shiro
浏览量:5855130
Group-logo
跟我学Nginx+Lua开...
浏览量:700888
5041f67a-12b2-30ba-814d-b55f466529d5
亿级流量网站架构核心技术
浏览量:783792
社区版块
存档分类
最新评论

扩展SpringMVC以支持绑定JSON格式的请求参数

 
阅读更多

 

上一篇:《扩展SpringMVC以支持更精准的数据绑定》

 

此方案是把请求参数(JSON字符串)绑定到java对象,,@RequestBody是绑定内容体到java对象的。

 

问题描述:

你好,对于如下的json数据,springmvc的数据绑定该如何做? 
accessionDate	2012-11-21 
deptIds	[{"deptId":4,"isPrimary":true}] 
email	ewer@dsfd.com 
fax	3423432 
gender	true 
其实就是我前台一表单提交的数据,extjs form提交的,关键在于deptIds的映射,数组不知怎么解决,还有就是springmvc的数据绑定好像要求javabean与json中的数据一一对应,否则也会出错

 

 如请求参数是deptIds={"deptId":4,"isPrimary":true}]  是一个json数组,此时需要绑定为一个对象,该如何实现呢?

 

解决方案:

类似于之前写的《扩展SpringMVC以支持更精准的数据绑定》扩展spring的HandlerMethodArgumentResolver以支持自定义的数据绑定方式。

 

1、请下载附件的代码,放到工程中;

2、在RequestMappingHandlerAdapter添加自定义HandlerMethodArgumentResolver Bean;

     <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> 
        <!--线程安全的访问session-->
         <property name="synchronizeOnSession" value="true"/> 
         <property name="customArgumentResolvers">
            <list>
               <bean class="cn.javass.spring.mvc.method.annotation.RequestJsonParamMethodArgumentResolver"/>
               <bean class="cn.javass.spring.mvc.method.annotation.FormModelMethodArgumentResolver"/>
            </list>
         </property>
     </bean>  

  //customArgumentResolvers用于注入自定义的参数解析器,此处我们注入了RequestJsonParamMethodArgumentResolver

3、使用方式

@RequestMapping("/list")  
public String list(@RequestJsonParam("list") List<Integer> list) 

 

4、测试控制器

package cn.javass.chapter6.web.controller.jsonparam;

import java.util.Arrays;
import java.util.List;
import java.util.Set;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import cn.javass.chapter6.model.DataBinderTestModel;
import cn.javass.chapter6.model.UserModel;
import cn.javass.spring.mvc.bind.annotation.RequestJsonParam;
import cn.javass.spring.mvc.util.MapWapper;


@Controller
@RequestMapping("/jsonparam")  
public class JsonParamController {

    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/list?list=[1,2,34]
    //fail http://localhost:9080/springmvc-chapter6/jsonparam/list?list=[1,2,a]
    @RequestMapping("/list")  
    public String list(@RequestJsonParam("list") List<Integer> list) {
        System.out.println(list);
        return "redirect:/success";        
    }
    
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/set?set=[1,2,34]
    //fail http://localhost:9080/springmvc-chapter6/jsonparam/set?set=[1,2,a]
    @RequestMapping("/set")  
    public String set(@RequestJsonParam("set") Set<Integer> set) {
        System.out.println(set);
        return "redirect:/success";        
    }
    
    
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/array?array=[1,2,3]
    //fail http://localhost:9080/springmvc-chapter6/jsonparam/array?array=[1,2,a]
    @RequestMapping("/array")  
    public String list(@RequestJsonParam("array") int[] array) {
        System.out.println(Arrays.toString(array));
        return "redirect:/success";        
    }
    
    
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/map?map={"a":1, "b":2}
    //fail http://localhost:9080/springmvc-chapter6/jsonparam/map?map={"a":1, "b":a}
    @RequestMapping("/map")  
    public String map(@RequestJsonParam(value = "map", required=false) MapWapper<String, Integer> map) {
        System.out.println(map);
        return "redirect:/success";        
    }
    
    
    //UserModel[]
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/array2?array=[{"username":"123"},{"username":"234"}]
    @RequestMapping("/array2")  
    public String array2(@RequestJsonParam(value = "array") UserModel[] array) {
        System.out.println(Arrays.toString(array));
        return "redirect:/success";        
    }

    //List<UserModel>
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/list2?list=[{"username":"123"},{"username":"234"}]
    @RequestMapping("/list2")  
    public String list2(@RequestJsonParam(value = "list") List<UserModel> list) {
        System.out.println(list);
        return "redirect:/success";        
    }

    //Set<UserModel>
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/set2?set=[{"username":"123"},{"username":"234"}]
    @RequestMapping("/set2")  
    public String set2(@RequestJsonParam(value = "set") Set<UserModel> set) {
        System.out.println(set);
        return "redirect:/success";        
    }
    
    //Map<String, UserModel>
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/map2?map={"a":{"username":"123"},"b":{"username":"234"}}
    //暂不支持 Map<UserModel, UserModel>
    @RequestMapping("/map2")  
    public String map2(@RequestJsonParam(value = "map") MapWapper<String, UserModel> map) {
        System.out.println(map);
        return "redirect:/success";        
    }
    
    
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/model1?model={"username":123,"password":234,"realname":"zhang","workInfo":{"city":"abc","job":"abc","year":"abc"}, "schoolInfo":{"schoolType":"1","schoolName":"1","specialty":"1"}}
    //没有realname1
    //fail http://localhost:9080/springmvc-chapter6/jsonparam/model1?model={"username":123,"password":234,"realname1":123}
    @RequestMapping("/model1")  
    public String model1(@RequestJsonParam(value = "model", required=true) UserModel user) {
        System.out.println(user);
        return "redirect:/success";        
    }
    
    //ENUM
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/model2?model={"state":"normal"}
    //List<基本类型>
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/model2?model={"hobbyList":["film", "music"]}
    //Map<基本类型,基本类型>
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/model2?model={"map":{"key":"value", "a":"b"}}    
    @RequestMapping("/model2")  
    public String model2(@RequestJsonParam(value = "model", required=true) DataBinderTestModel model) {
        System.out.println(model);
        return "redirect:/success";        
    }
    
    //List<UserModel>
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/model3?model={"userList":[{"username":"1"},{"username":"2"}]}
    //Map<String,UserModel>
    //ok   http://localhost:9080/springmvc-chapter6/jsonparam/model3?model={"userMap":{"1":{"username":"1"},"2":{"username":"2"}}}

    //暂不支持 类似于 Map<UserModel, UserModel> 形式
    @RequestMapping("/model3")  
    public String model3(@RequestJsonParam(value = "model") DataBinderTestModel model) {
        System.out.println(model);
        return "redirect:/success";        
    }
    
}

 

支持的spring版本:

springmvc 3.0 和 3.1.x。

 

支持绑定的数据:

模型、集合、数组、MapWapper(Map的一个包装器,通过getInnerMap获取真实Map)

 

暂时不支持JSR-303数据校验.

 

缺点:

1、和《扩展SpringMVC以支持更精准的数据绑定》一样的缺点。

spring自定义的参数解析器会放在默认解析器之后,不能指定order,因此如果我们@FormModel("map") Map map,此map会变成Model(请参考http://jinnianshilongnian.iteye.com/blog/1698916 第六部分、Model Map ModelMap),希望未来的版本支持自定义顺序来解决这个问题;此处我们使用MapWapper解决,可以通过MapWapper.getInnerMap()拿到我们需要的Map。

2、支持的jackson版本是1.4.2,版本比较老,spring3.2里程碑版已升级到2.x。

3、暂时没有提供JSR303数据校验。

 

欢迎大家反馈问题,我会及时修正。

 

18
3
分享到:
评论
29 楼 wzm1195 2013-05-31  
jinnianshilongnian 写道
wzm1195 写道
wzm1195 写道
博主,请教一下,怎么实现jsp上的json对象和处理类的List绑定?

我感觉和博主的这篇文章内容很相似,但是却实现不了!

没太明白你的意思,能否给个简单的示例

如tuser有4个属性,我在jsp上面用easyui添加了4条tuser记录,提交后怎么配置才能使处理器对应方法的参数List<tuser>的内容为提交的内容?我用DataBinderTestModel总是得到为null。
28 楼 jinnianshilongnian 2013-05-31  
wzm1195 写道
wzm1195 写道
博主,请教一下,怎么实现jsp上的json对象和处理类的List绑定?

我感觉和博主的这篇文章内容很相似,但是却实现不了!

没太明白你的意思,能否给个简单的示例
27 楼 wzm1195 2013-05-31  
博主,请教一下,怎么实现jsp上的json对象和处理类的List绑定?
我感觉和博主的这篇文章内容很相似,但是却实现不了!我用spring mvc 3.1.1。
26 楼 wzm1195 2013-05-31  
wzm1195 写道
博主,请教一下,怎么实现jsp上的json对象和处理类的List绑定?

我感觉和博主的这篇文章内容很相似,但是却实现不了!
25 楼 wzm1195 2013-05-31  
博主,请教一下,怎么实现jsp上的json对象和处理类的List绑定?
24 楼 jinnianshilongnian 2013-03-05  
飞天奔月 写道
我想写个

public String doAddShoppingCartMap(
Map<String, Integer> upcMap,
Model model,
HttpServletRequest request,
HttpSession session){

参数 中 是map  ,该怎么弄呢?

有简单的吗?  你这个引用了太多的东西


使用最新的spring3.2把 支持
@RequestParam("") Map
23 楼 飞天奔月 2013-03-03  
我想写个

public String doAddShoppingCartMap(
Map<String, Integer> upcMap,
Model model,
HttpServletRequest request,
HttpSession session){

参数 中 是map  ,该怎么弄呢?

有简单的吗?  你这个引用了太多的东西
22 楼 jinnianshilongnian 2012-12-18  
jayuton 写道
jayuton 写道
jinnianshilongnian 写道
jayuton 写道
spring本身就支持JSON,多此一举

支持的是内容体绑定  不支持参数是json字符串的绑定

不会吧,@RequestBody 根据类型决定.前台传的是json字符串,spring会根据定义类型自动转换.你用Map.List,String modelBean 类型都可以自动转换



你上面是Get请求传参,不过Get请求,一般不要求参数太多,基于rest 风格传

是的,这个是之前有位朋友需要所以写了一个
21 楼 jayuton 2012-12-18  
jayuton 写道
jinnianshilongnian 写道
jayuton 写道
spring本身就支持JSON,多此一举

支持的是内容体绑定  不支持参数是json字符串的绑定

不会吧,@RequestBody 根据类型决定.前台传的是json字符串,spring会根据定义类型自动转换.你用Map.List,String modelBean 类型都可以自动转换



你上面是Get请求传参,不过Get请求,一般不要求参数太多,基于rest 风格传
20 楼 jayuton 2012-12-18  
jinnianshilongnian 写道
jayuton 写道
spring本身就支持JSON,多此一举

支持的是内容体绑定  不支持参数是json字符串的绑定

不会吧,@RequestBody 根据类型决定.前台传的是json字符串,spring会根据定义类型自动转换.你用Map.List,String modelBean 类型都可以自动转换
19 楼 jinnianshilongnian 2012-12-18  
1927105 写道
import org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver;


这个类在Spring3.0.5 中没有啊,怎么办?

@since 3.1
18 楼 1927105 2012-12-18  
import org.springframework.web.method.annotation.AbstractNamedValueMethodArgumentResolver;


这个类在Spring3.0.5 中没有啊,怎么办?
17 楼 jinnianshilongnian 2012-11-19  
a22349 写道
参数传进来了,但请求别的一般的方法时,总报这个错,感觉似乎是把什么缺省的配置覆盖掉了
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
04:04:02,741 ERROR :117 - error
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:115)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:80)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:94)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)

你是用的@ResponseBody吗? 写的是JSON? 如果是估计是jackson 消息转换器没有注册/jar不对
16 楼 jinnianshilongnian 2012-11-19  
a22349 写道
参数传进来了,但请求别的一般的方法时,总报这个错,感觉似乎是把什么缺省的配置覆盖掉了
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
04:04:02,741 ERROR :117 - error
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:115)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:80)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:94)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)

晚上我看看 如果方便能否提供下测试用例
15 楼 a22349 2012-11-19  
参数传进来了,但请求别的一般的方法时,总报这个错,感觉似乎是把什么缺省的配置覆盖掉了
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
04:04:02,741 ERROR :117 - error
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:115)
at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodProcessor.writeWithMessageConverters(AbstractMessageConverterMethodProcessor.java:80)
at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.handleReturnValue(RequestResponseBodyMethodProcessor.java:94)
at org.springframework.web.method.support.HandlerMethodReturnValueHandlerComposite.handleReturnValue(HandlerMethodReturnValueHandlerComposite.java:69)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:604)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:565)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:923)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:852)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1221)
14 楼 jinnianshilongnian 2012-11-08  
jayuton 写道
spring本身就支持JSON,多此一举

支持的是内容体绑定  不支持参数是json字符串的绑定
13 楼 jayuton 2012-11-08  
spring本身就支持JSON,多此一举
12 楼 jinnianshilongnian 2012-11-08  
key232323 写道
我个人觉得request form式的key-value方式不如这种json传递——js端组装复杂对象已经很成熟了,服务端只要关注绑定和一般校验就可以了

但spring的这种做法麻烦而且只是简单的数据类型支持,还不如用字符串,通过一个json库解析下,然后再转换成java集合对象或自定义对象

BS:动态语言更简练些,LZ为何不去了解下groovy之类?

嗯,此处只是springmvc个别案例(之前有朋友非要绑定json请求参数到对象,所以写了一个扩展),从实用性角度看:此场景应用极少,一般都可以通过改造。

但spring的这种做法麻烦而且只是简单的数据类型支持,还不如用字符串,通过一个json库解析下,然后再转换成java集合对象或自定义对象:现在我加的这个扩展,支持复杂类型(缺点是不支持Map[因为无法指定解析器order造成的])
11 楼 key232323 2012-11-08  
我个人觉得request form式的key-value方式不如这种json传递——js端组装复杂对象已经很成熟了,服务端只要关注绑定和一般校验就可以了

但spring的这种做法麻烦而且只是简单的数据类型支持,还不如用字符串,通过一个json库解析下,然后再转换成java集合对象或自定义对象

BS:动态语言更简练些,LZ为何不去了解下groovy之类?
10 楼 jinnianshilongnian 2012-11-08  
char1st 写道
jinnianshilongnian 写道
char1st 写道
博主 ,早上好。 这个和springmvc自带的@responseBody  和@requestBody 比起来,处理简单的json的请求和响应那个好点?

@requestBody  绑定请求的内容体部分 不是参数部分 不要混淆

哦 了解了  说句题外话吧 。我总觉得把json字符串作为请求的参数值这种方式很蛋疼。

是,哈哈,有时候确实有人需要,我就写了一个

相关推荐

    springmvc_hibernate+json lib包

    标题中的"springmvc_hibernate+json lib包"表明这是一个与Spring MVC、Hibernate和JSON相关的库文件集合。在Java开发领域,这三大技术是构建Web应用程序的重要组件。让我们深入了解一下它们各自的功能以及它们如何...

    springmvc+rest+json交互+接口

    3. **处理JSON数据**:使用`@RequestBody`和`@ResponseBody`注解来绑定HTTP请求体和响应体到方法参数和返回值。Spring MVC会自动将JSON字符串转换为Java对象,反之亦然。 4. **实体类和数据转换**:定义表示资源的...

    SpringMVC3+Hiberate4+Junit+json

    SpringMVC、Hibernate、JUnit 和 JSON 这四个技术在IT行业中是极其重要的组件,它们各自在不同的领域发挥着关键作用,而将它们整合在一起则能构建出强大的企业级Web应用程序。 SpringMVC 是Spring框架的一个模块,...

    Jackson相关jar包,springMVC的Ajax请求,JSON

    它基于`jackson-core`,并扩展了注解支持,使得我们可以很方便地将Java对象转换为JSON字符串,或者从JSON字符串中恢复Java对象。 在Spring MVC中,Ajax请求通常用于无刷新更新页面的一部分内容。通过使用Jackson,...

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

    对于请求参数,可以使用`@RequestBody`注解将JSON请求体解析为Java对象。 5. **异常处理**:使用@ControllerAdvice和@ExceptionHandler注解定义全局的异常处理器,为RESTful服务提供统一的错误响应。 **jQuery和...

    springmvc+spring+hibernate+json文件

    在Java中,可以使用Jackson、Gson等库来序列化和反序列化Java对象为JSON格式,以便于网络传输。 结合这四个技术,开发者可以创建出高性能、模块化的Web应用程序。Spring MVC处理HTTP请求,调用由Spring管理的业务...

    SpringMVC.docx

    6. `@RequestBody`:接收JSON格式请求。 【视图解析】 视图解析涉及到如何将模型数据转换成用户可见的形式,包括: 1. 传统JSP和JSTL视图。 2. 简化的不带数据模型的JSP视图。 3. JSON视图,适合API接口。 4. 使用...

    springmvc-json-view需要的jar

    标题提到的"springmvc-json-view需要的jar"是指为了实现Spring MVC中JSON视图支持,开发者需要在项目中引入特定的Java库(JAR文件)。下面我们将详细探讨这些JAR文件及其在JSON处理中的作用。 首先,`json-lib-2.4-...

    springmvc.docx

    对于 JSON 数据的处理,SpringMVC 内置了 JSON 支持,可以将 Java 对象转换为 JSON 格式,反之亦然,这对于前后端交互非常有用。 文件上传功能在 SpringMVC 中也得到了很好的支持,通过 MultipartFile 接口,开发者...

    springmvc+ext4.1+json配置(含jar)

    "springmvc+ext4.1+json配置"的组合不仅提高了开发效率,还使得应用程序具有高度的可扩展性和灵活性,满足了现代企业级应用的需求。这个压缩包中的"SwayWind"可能是一个示例项目或者相关组件,下载后可以通过研究其...

    SpringMVC学习编程代码

    此外,SpringMVC支持数据绑定和验证,可以通过`@ModelAttribute`注解将请求参数绑定到Java对象,并利用`@Valid`和`Validator`接口进行数据验证。 对于异常处理,SpringMVC提供了`@ExceptionHandler`注解,可以用来...

    springmvc+angularjs springmvc 整合angularjs demo

    在SpringMVC中,我们可以通过`@ResponseBody`注解和`@RestController`注解将方法返回的对象转化为JSON格式,然后通过HTTP响应发送给前端。在AngularJS中,我们可以使用$http服务来发起HTTP请求,获取服务器返回的...

    SpringMVC课堂笔记(2)

    SpringMVC支持注解驱动的参数绑定,这极大地简化了开发过程。默认情况下,它可以处理HttpServletRequest、HttpServletResponse、session和model/modelMap等类型。对于简单数据类型(如整型、字符串、日期),只要...

    自定义的springMVC

    Formatter)**:如果需要处理的数据类型SpringMVC不支持,可以创建自定义的转换器或格式化器,实现Converter或Formatter接口,将它们注册到SpringMVC上下文中,以处理特定类型的参数绑定。 - **自定义消息转换器...

    springMVC 实战指南

    SpringMVC支持多种数据格式,例如JSON、XML等,通过HttpMessageConverter接口实现不同类型的消息转换。数据格式化是指将数据从一种形式转换成另一种形式,例如从日期字符串转换成Date对象。数据校验是保证数据有效性...

    AngularJS+SpringMVC小项目

    4. **注解驱动**:SpringMVC支持使用注解如`@RequestMapping`来映射URL到处理方法,`@RequestParam`获取请求参数。 5. **Service和DAO层**:服务层封装业务逻辑,数据访问对象(DAO)层负责与数据库交互。Spring的...

    jetbrick-springmvc jar包(包含源码)

    4. **数据绑定**:Jetbrick-SpringMVC增强了SpringMVC的数据绑定能力,支持类型转换、验证和默认值设定,提高开发效率。 5. **异常处理**:提供了一套统一的异常处理机制,将系统异常转化为用户友好的错误页面,...

Global site tag (gtag.js) - Google Analytics