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. angular.js - 不適用其他構建工具,怎么搭建angular1項目2. python 如何實現PHP替換圖片 鏈接3. mysql - 一個表和多個表是多對多的關系,該怎么設計4. html5 - iOS的webview加載出來的H5網頁,怎么修改html標簽select的樣式字體?5. mysql主從 - 請教下mysql 主動-被動模式的雙主配置 和 主從配置在應用上有什么區別?6. android-studio - Android 動態壁紙LayoutParams問題7. angular.js - 三大框架react、vue、angular的分析8. 主從備份 - 跪求mysql 高可用主從方案9. python如何不改動文件的情況下修改文件的 修改日期10. python - django 里自定義的 login 方法,如何使用 login_required()
