Struts2切换为SpringMVC的技术分享

项目开发背景:

P2p项目的WEB模块,MOBILE模块均使用SSM框架,采用SpringMVC分发请求;唯独OPS采用Struts2分发请求,且前后端不分离。

问题:

开发维护人员需同时理解掌握springMVC,Struts2,JSP技术,虽然这样没什么不好,但额外的开发成本对于项目总是可以省掉的。

解决:

Struts2替换为SpringMVC的版本迭代应运而出,以最小的开发变动将Struts2替换为springMVC。

工程启动:

启动背景,个人对于Struts2,SpringMVC均处于会用的阶段,对这个工程是深感恐惧的,然而我还是开始了。 


1.配置文件的替换

第一步也是最简单的就是配置文件的修改

1.加入SpringMVC配置文件,配置文件中包含了SpringMVC的拦截器(可用来拦截登陆请求),解决字符串乱码,对JSON的支持等,扫描@Controller。

2.在web.xml中将Struts的过滤器切换为springMVC的Servlet。由此,服务器在接受到网络请求将通过DispatcherServlet来分发请求。

2.恢复OPS的登陆功能

1.OPS采用Shiros做登录权限控制,由于Struts2时可将登录用户放于值桟中,后台在取数据时,可以很方便的从值桟中去。而SpringMVC则没有这个功能,于是,我在Shiros做登录校验的时候,将用户对象信息存放在Session中,方便在SpringMVC的拦截器中做登录判断。

2.重写SpringMVC的登录拦截器,在Struts2的基础上稍微做了一下取用户对象的更改。

3.配置修改Shiros,和SpringMVC的登录拦截器。最终实现登录

3.恢复OPS的菜单权限

权限使用的是shiros框架,权限控制在菜单级别,并没深入到元素标签级别,通过为后台管理人员分配一个角色来控制权限。

4.逐级恢复OPS的各项接口功能

期间遇到各种问题,主要是接口的400报错。

400报错的原因主要是:

1.传递参数为对象类型,前台封装的json包含了后端并没有的字段和属性。

2.传递参数为对象类型,传递参数中包含有Date类型,未做转义照成。

405报错 (请求方式不对,为了快速开发,将所有的接口设置为默认)

500报错(多为nullpointException报错,少传递了参数)


5.jsp界面的修改

1.删除jsp页面中的struts2 标签,使用jstl标签替换

-->

-->

你可能感兴趣的:(Struts2切换为SpringMVC的技术分享)