spring mvc框架怎么用

spring mvc框架怎么用,第1张

首先你要了解MVC的意思了
然后MVC框架有好多
struts
jsf
tapestry

你说spring如何实现mvc,这个听起来怪怪的
你首先要对spring有所了解才行
来看看spring给我们带了些什么
Dao,ORM,AOP,Web
它里面提供了一个WEB框架,就可以实现MVC,并且可以和上面提到的其它MVC框架做集成,所以说呢,Spring本身就集成了MVC,你只需按它的规范去做就好了,不用再去想如何实现

在Spring MVC中,需要将以下数据类型的返回值转成JSON格式才能正确显示:

JavaBean对象:可以通过Jackson或Gson等第三方库将JavaBean对象转成JSON格式;

Map或List对象:同样可以通过Jackson或Gson等第三方库将Map或List对象转成JSON格式;

String类型:返回的字符串本身就是JSON格式,无需再次转换;

ModelAndView对象:通过Jackson或Gson等第三方库将ModelAndView对象中的数据转成JSON格式。

需要注意的是,在使用Jackson或Gson等第三方库进行JSON转换时,需要在项目中引入相应的依赖。同时,Spring MVC也提供了内置的JSON转换器,可以在配置文件中进行配置。

一、SpringMVC应用
1springmvc是一个表现层的框架
经典三层架构:表现层, service层, dao层。
Spring MVC和Struts2一样,都是 为了解决表现层问题 的web框架,它们都是基于 MVC 设计模
式的。而这些表现层框架的主要职责就是处理前端>一、提要
1 原消息转换器配置
原项目是以自定义消息转换器Bean的方式将fastjson转换器注入Spring容器:
在该方式下,最终注册的消息转换器列表顺序如下:
JsonFormatUtilsset>

可以使用@RequestBody注解:

 @RequestMapping(value = "user/saveUser"", method = RequestMethodPOST)
 @ResponseBody
 public Map<String, Object> result(@RequestBody User user) {
    userServicesaveUser(user); 
    }

这个注解是将Json字符串转换成java对象,所以需要在前端通过JSONstringify()方法将json对象转换成json字符串

var user = {"userName":"test","address":"gz"};  
$ajax({ 
           type:"POST", 
           url:"user/saveUser", 
           dataType:"json",      
           contentType:"application/json",               
           data:JSONstringify(user ), 
           success:function(data){ 
                                      
           } 
        });

这只是一种方法,还可以使用fastjson工具包,将前端传回的json字符串转换成对应的java对象

或者List<User>

User user=JSONparseObject(user, Userclass);

我给你解释一下:
对于springmvc的日期转换,我用的是:springmvcxml中配置json转换器(必须,需引入jackson jar包),实体类中日期属性用@datefammter(记不清了),重点来了,分两种情况:
1前台js获取的数据是单对象的 比如var user = {birthday:birthday}
直接用ajax 参数中的data:user。后台方法形参中只需要写上(User user )就能自动绑定。比较简单。
2js前台获取到的数据是一个arry(比如批量保存的问题),userlist=new arry()
一般用each函数循环push
userlistpush(uesr)
特别注意:这时候springmvc接受的日期格式为 yyyy-mm-dd(yyyy/mm/dd会报错)
这种情况就需要在ajax data:jsonstringify(userlist)<串化json>
后台形参中(@requestbody list<user> userlist)就能后完成绑定。
纯手打,望采纳

主要内容:

这里我们还是使用上次整合的工程。
*** 作流程:

根据上面的需求我们可以知道, mapper 中此处需要完成两个功能:

根据持久层 mapper 的相关业务需求,这里我们就可以知道业务层的功能需求

ItemsServiceIjava

ItemsServiceImpljava

说明: 这里我们的方法还不是很完善,比如这里就没有给出查询条件,在后面一步步完善。

ItemsControllerjava

说明: 对于商品列表展示页面在整合工程中已经给出,这里我们给出修改页面:
WEB-INF/jsp/items/editItemsjsp

下面我们就可以部署工程,使用地址 >SpringBoot中对mvc配置主要使用到 WebMvcAutoConfiguration :

WebMvcAutoConfiguration 有五个静态内部类,写成内部类的原因是当 WebMvcAutoConfiguration 没有被启用时,内部类也不会被加载。

五个内部类:

最重要是 WebMvcAutoConfigurationAdapter , EnableWebMvcConfiguration 。

类图:

可以看到 WebMvcAutoConfigurationAdapter 是 WebMvcConfigurer 的一个实现,所以 WebMvcAutoConfigurationAdapter 的配置会被 WebMvcConfigurationSupport 加载,就像Spring-mvc配置中提到的。也就是一些默认的mvc配置,例如欢迎页,转换器,视图解析器。

除此之外, WebMvcAutoConfigurationAdapter 还有一个 @Import(EnableWebMvcConfigurationclass) 。说明在加载 WebMvcAutoConfigurationAdapter 配之前需要加载 EnableWebMvcConfiguration 。这也是一个自动配种非常重要的类。

Spring-boot官方文档对此配置类的说明:

相对应的翻译:

也就是说,当 EnableWebMvcConfiguration 被加载时(使用Spring-boot配置项目时)我们不需要再使用注解 @EnableWebMvc 。

类图:

我们可以看到,它就是一个 DelegatingWebMvcConfiguration ,这也解释了为什么当此类被加载时和 @EnableWebMvc 是等价的。

EnableWebMvcConfiguration 中主要是对父类的重写。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13334748.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-16
下一篇 2023-07-16

发表评论

登录后才能评论

评论列表(0条)

保存