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. centos - rpm更新軟件wkhtmltox報錯2. java - 已知外匯牌價折算匯率3. javascript - gitbook serve命令找不到fontsettings.js4. css3 - 請教一下,css如何使左右兩邊的div高度自適應相等5. java - shiro anon 不生效6. javascript - 連續點擊觸發mouseleave事件7. javascript - 如何讓外層div隨內層div的寬度自適應調整寬度8. 前端 - 如何實現自適應的多行文字垂直居中?9. css - ios input 添加 readonly unselectable="on" 屬性,光標依舊還在,怎么清除光標10. dockerfile - [docker build image失敗- npm install]

網公網安備