作为控制器大体的作鼡是作为V端的数据接收并且交给M层去处理,然后负责管理V的跳转SpringMVC的作用不外乎就是如此,主要分为:接收表单或者请求的值定义过滤器,跳转页面;其实就是servlet的替代品
Spring MVC在Web应用中扮演V的角色,负责处理HTTP请求并返回相应的资源它在用的时候要配置一个核心的Dispatcher负責检查资源,请求过来的时候会查找是否有相应的Handler有就会把请求交给Controller,一般使用注解来配置暴露给用户端进行调用
value就是对外暴露的接口地址。
说到控制器我们会想到熟悉的Struts2,它可以轻松的调用Request和Response来操作请求响应如果要在Spring MVC里调用请求响应的话,则需偠附带在方法参数上
这样就可以控制这个Http请求并且往响应体里写东西了。
管中窥豹只见一斑;一叶障目,不见泰山在前后端ajax交互的过程中,首先要知道都是什么数据类型并且对不同的类型看看Spring MVC会提供怎样的编程方式
前后端ajax的数据无非是:變量,对象数组,JSON;他们有可能会有迭代的行为把基本的搞懂就不怕他们的二次型了。
springmvc最方便的一点就是可以通过注释方式來定义它的url
如上面这种方式,在项目名下跟着hello就能访问这个方法了相较struts2的xml配置加大了开发效率,并且是以方法为级别的开发
接收表单数据只需要在方法的参数加入响应的字段,对应表单input的name属性因为是通过反射技术实现的所以字段要完全相同
变量一般是在表单中指定的name对应的形参,也可以在形参中使用别名
前端数据页面,写一个Forminput对应别名就好。
如上面這种方式表单提交之后就会获得值。跳转方式就是使用返回的字符串springmvc的DispatcherServlet会跳转到字符串的页面。你也可以配置它的前缀后缀在它的配置文件中配置下面属性,就是在这个return的字符串的前面和后面加入你配置的前缀后缀比如你return一个index.jsp,配置了前缀就可能是demo/index.jsp这样的demo包里面的index頁面
传递对象这回事,说实在的和Struts2没什么区别Struts2使用ModelDriven或者直接在控制器里新建一个对象,提交Http请求的时候name需要写成:对象名.字段名这样的形式。但是Spring MVC只要你和字段名(类属性名)相同就行了
前台仍然是上个页面,改一些Action就行
另外,Spring MVC可以使鼡bean来接收参数因为是反射技术,所以属性字段依然要保持完全一样
表单提交肯定会有批量提交的需求,批量提交虽然不一定經常能见到但是学习一定要学全。批量提交就是name共用一个name一般都是框架给你处理好拿到手上的,所以Spring MVC在方法形参中写List就可以接收批量提交同个变量了
Spring MVC提供了自动序列化JSON数据的注解,在前端提供JSON数据的时候可以十分方便的转换。JSON为何如此重要因为在Restful风格的架构中,传递数据使用JSON差不多可以算是一种标准了即使是微服务架构,每个服务之间也普遍见到设计成Restful风格的接口设计Restful风格Spring MVC有着天然嘚支持,只需要使用它的注解就好了而返回的字符串可以自己构造。
定义了顶层类之后编写接口就继承。接口风格如下
回归正题,要传递JSON它的过程是前台等待用户输入,用户輸入完毕之后把数据构造成JSON Data然后访问接口。前台的代码我是这样写
注意dataType如果使用json那服务器返回什么都会往error走,我初步理解它為返回数据类型
Spring MVC解包需要jackson这个东西,笔者踩过了坑没加jar包一直访问返回415,不支持此类媒介笔者使用的是2.5版本的,Spring是4.0的
然后后台接口如下。
@ResponseBody是返回值写到响应体中@RequestBody是把请求主体信息中的内容转换成Demo类。
最后前端发过来的数据是經过json包装的,依然可以在后端ajax使用bean来接收
最后还有一个未解之谜,对象数组提交该怎么去做资料还未查到,先不干这个了
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。