美文网首页
Struts2切换为SpringMVC的技术分享

Struts2切换为SpringMVC的技术分享

作者: 长城ol | 来源:发表于2017-10-14 14:08 被阅读505次

    项目开发背景:

    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标签替换

    <s:if>--><c:if>

    <s:iterator>--><c:forEach>

    相关文章

      网友评论

          本文标题:Struts2切换为SpringMVC的技术分享

          本文链接:https://www.haomeiwen.com/subject/egfanttx.html