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.回到你的問題,就是一個方法抽取的場景,建議看一下<<代碼重構(gòu)>>這本書
回答2:寫到filter當中,或者用動態(tài)代理
回答3:代碼隨便重構(gòu)一下就好看多了
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;}
相關(guān)文章:
1. html5和Flash對抗是什么情況?2. 前端 - ng-view不能加載進模板3. javascript - 求解答:實例對象調(diào)用constructor,此時constructor內(nèi)的this的指向?4. java - spring-security與微信登錄的問題?5. docker-compose 為何找不到配置文件?6. docker gitlab 如何git clone?7. docker內(nèi)創(chuàng)建jenkins訪問另一個容器下的服務器問題8. android-studio - android studio 結(jié)巴了,有什么辦法可以治好它嗎?9. MySQL啟動錯誤10. javascript - angularjs怎么獲取repeat里的某些$index值?
