最近开始接触学习笔记一这个框架,这个框架使用起来很方便,框架搭起来之后,写起代码几乎都是一个模式。当然要走到这一步必须保证你的学习笔记一的相关配置都已经完成,并且配置正确!
作为我的关于S平ringMVC的首篇博客,本篇博客主要说名如何配置SpringMVC,并且可以使之正常的返回豆实体,这里的豆实体一般返回到前端都是以数据字符串的形式返回的。
使用的开发工具为日蚀,这个也是比较大众化的开发工具了,算的上是人人都会使用的了,只是熟练程度不一样!
具体的配置如下:
web.xml:
?可扩展标记语言版本='1.0 '编码='UTF-8 '?web-app xmlns : xsi=' http://www。w3。org/2001/XMLSchema-instance ' xmlns=' http://xmlns。JCP。org/XML/ns/javaee ' xmlns : context=' http://www .弹簧框架。org/schema/context ' xmlns : VC=' 3http://www .弹簧框架。org/schema/MVC ' xsi :架构位置='
?可扩展标记语言版本='1.0 '编码='UTF-8 '?beans xmlns : xsi=' http://www。w3。org/2001/XMLSchema-instance ' xmlns=' http://www .弹簧框架。org/schema/beans ' xmlns : context=' http://www .弹簧框架。org/schema/context ' ' xmlns 3: xmlns=' 3: xmlns charset=UTF-8/value value text/html;charset=UTF-8/值/列表/属性/bean class=' org。弹簧框架。http。转换器。JSON。映射Jackson 2 htpmessageconverter ' property name=' supportedMediaTypes '列表值应用程序/JSON;charset=UTF-8/value value application/x-www-form-URL编码;charset=UTF-8/值/列表/属性/bean/MVC :消息转换器/MVC :注释驱动/bean还有一个applicationContext.xml,不过我的里面什么都没有写,我就不给出了!
新建一个index.jsp,这个作为主界面用来测试各个接口的返回值是否正常!这里也给出代码:
% @ page语言=' Java ' ContentType=' text/html;charset=ISO-8859-1 '页面编码=' ISO-8859-1 ' %!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN ' ' http://www .w3。org/TR/HTML 4/松散。DTD ' HTML hearteta http-equiv=' Content-Type ' Content=' text/HTML;字符集=ISO-8859-1 '标题主页/标题/标题正文h1欢迎来到主页!/h1表单操作='/ReturnJsonDemo/first '输入类型='提交'值=' first '//表单表单操作='/ReturnJsonDemo/second '输入类型='提交'值=' second '//表单操作='/ReturnJsonDemo/third '输入类型='提交'值='第三'/表单/正文/html到这里基本上配置方面的都完成了,然后是申明一个控制器,具体的代码也比较简单,基本上都是固定的格式!
MainController.java
打包。zyq。春季MVC。控制器;导入Java。文字。SimpleDateformat导入Java。乌提尔。ArrayList导入Java。乌提尔。HashMap导入Java。乌提尔。列表;导入Java。乌提尔。地图;导入组织。弹簧框架。刻板印象。控制器;导入组织。弹簧框架。网络。绑定。注释。请求映射;导入组织。弹簧框架。网络。绑定。注释。反应体;导入com。zyq。春季MVC。比恩。普通豆;导入com。zyq。春季MVC。比恩。SoNbean@Controllerpublic类主控制器{ @ request mapping('/first ')@ response body public common bean getFirst(){ common bean=new common bean();bean.setResultCode("成功");bean.setTimeStamp(新的简单日期格式('年/月/日hh :MM毫米3360秒').格式(系统。current millis());bean.setData(“”这是第一条消息');返回bean} @请求映射('/second ')@响应体公共公共bean getSecond(){公共bean bean=新公共bean();bean.setResultCode("成功");bean.setTimeStamp(新的简单日期格式('年/月/日hh :MM毫米3360秒').格式(系统。current millis());列表字符串数据=new ArrayList();数据。添加(' JAVA ');数据。添加(' C ');数据。添加(' PYTHON ');数据。添加(' C ');bean.setData(数据);返回bean} @请求映射('/third ')@响应体公共bean getThird(){ common bean=new common bean();bean.setResultCode("成功");bean.setTimeStamp(新的简单日期格式('年/月/日hh :MM毫米3360秒').格式(系统。current millis());映射字符串数据=new HashMap();data.put('first ',' JAVA ');data.put('second ',' PYTHON ');data.put('第三,' C ');data.put('第四,' C ');bean.setData(数据);返回bean} @请求映射('/fourth ')@响应体公共公共bean getFourth(){公共bean bean=新公共bean();bean.setResultCode("成功");bean.setTimeStamp(新的简单日期格式('年/月/日hh :MM毫米3360秒').格式(系统。current millis());SoNbean SoNbean=new SoNbean();桑比恩。setage(25);sonBean.setName(《黑客的喜悦》);sonBean.setGender('男性');比恩。setdata(SoNbean);返回bean}}代码的运行效果如下:
好像不同浏览器对于接口的请求操作不一样,在使用黯然失色请求接口,会让下载一个数据文件,文件的内容就是一个数据字符串。
在配置完整的工程需要用到中文论坛的冲突包杰克逊的相关冲突包,我使用的tomcat8.5在运行的时候提示报错,需要引入普通日志的冲突包。
在声明一个返回数据字符串的接口时,一定要使用@ResponseBody注解,这个注解会将接口的返回数据写入反应中的身体区域,也就是重新传回前端。
在我测试的时候遇到一个问题,在返回豆的时候,只能返回类包裹,不能返回类继承或者接口继承,举个例子:
如果你返回一个ParentBean,其内部包含一个ChildBean,这样是好的。
如果在定义接口时返回了父类,但实际上返回了它的子类,那么会报告一个错误,提示子类不能转换为父类,这意味着您不能将String对象转换为object对象。在这方面,它应该基于父类无法找到子类的属性,这导致无法正常地将bean对象转换为json字符串。所以不允许在框架内的接口中声明bean,返回bean的子类(这些原因只是个人猜测,需要具体原因。
好了,以上就是返回json字符串的全部内容!附上了演示的源代码,所需的jar包也在里面。可以自己下载需要的JAR包!
源代码下载
上面这个用SpringMVC返回json字符串的例子就是边肖和大家分享的全部内容,希望能给大家一个参考和支持。