java - SpringMVC如何有没有中间件之类的东西 ?
问题描述
@RequestMapping('/admin') public String index(ModelMap modelMap,HttpServletRequest req){String scheme = req.getScheme();String serverName = req.getServerName();int serverPort = req.getServerPort();String path = req.getContextPath();String basePath = scheme+'://'+serverName+':'+serverPort+path+'/';modelMap.put('basePath',basePath);modelMap.put('adminPath', basePath+'admin/');modelMap.put('staticPath', basePath+'static/admin/common');return 'admin/index'; } @RequestMapping('/admin/login') public String login(ModelMap modelMap,HttpServletRequest req){String scheme = req.getScheme();String serverName = req.getServerName();int serverPort = req.getServerPort();String path = req.getContextPath();String basePath = scheme+'://'+serverName+':'+serverPort+path+'/';modelMap.put('basePath',basePath);modelMap.put('adminPath', basePath+'admin/');modelMap.put('staticPath', basePath+'static/admin/common');return 'admin/login'; }
获取路径的代码写了两份 ,感觉好臃肿啊,怎么让只写一份,然后给共用?
问题解答
回答1:1.首先中间件概念你没弄清楚,不能乱用2.回到你的问题,就是一个方法抽取的场景,建议看一下<<代码重构>>这本书
回答2:写到filter当中,或者用动态代理
回答3:代码随便重构一下就好看多了
public String index(ModelMap modelMap,HttpServletRequest req){ String basePath = getBasePath(req); modelMap.put('basePath',basePath); modelMap.put('adminPath', basePath+'admin/'); modelMap.put('staticPath', basePath+'static/admin/common'); return 'admin/index';}private String getBasePath(HttpServletRequest req) { String scheme = req.getScheme(); String serverName = req.getServerName(); int serverPort = req.getServerPort(); String path = req.getContextPath(); String basePath = scheme+'://'+serverName+':'+serverPort+path+'/'; return basePath;}
相关文章:
1. docker - 如何修改运行中容器的配置2. docker-compose 为何找不到配置文件?3. javascript - 关于js原生事件的绑定与解除绑定4. javascript - [MUI 子webview定位]5. javascript - Js对象怎么通过value值拿到key值?6. debian - docker依赖的aufs-tools源码哪里可以找到啊?7. 关docker hub上有些镜像的tag被标记““This image has vulnerabilities””8. 前端 - 怎样让scale缩小的元素不占据原来的空间?9. docker 下面创建的IMAGE 他们的 ID 一样?这个是怎么回事????10. java - SSH 根据id字段不能更新数据问题

网公网安备