java - SpringMVC如何有沒(méi)有中間件之類的東西 ?
問(wèn)題描述
@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'; }
獲取路徑的代碼寫了兩份 ,感覺(jué)好臃腫啊,怎么讓只寫一份,然后給共用?
問(wèn)題解答
回答1:1.首先中間件概念你沒(méi)弄清楚,不能亂用2.回到你的問(wèn)題,就是一個(gè)方法抽取的場(chǎng)景,建議看一下<<代碼重構(gòu)>>這本書
回答2:寫到filter當(dāng)中,或者用動(dòng)態(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. dockerfile - [docker build image失敗- npm install]2. docker安裝后出現(xiàn)Cannot connect to the Docker daemon.3. docker gitlab 如何git clone?4. python - pandas按照列A和列B分組,將列C求平均數(shù),怎樣才能生成一個(gè)列A,B,C的dataframe5. 求一個(gè)mySQL安裝包6. docker-machine添加一個(gè)已有的docker主機(jī)問(wèn)題7. 使用mysql自增主鍵遇到的問(wèn)題8. css3 - [CSS] 動(dòng)畫效果 3D翻轉(zhuǎn)bug9. java - Tomcat 不同的域名訪問(wèn)同一個(gè)項(xiàng)目的不同網(wǎng)頁(yè)10. javascript - 文件改后綴后怎么獲得原來(lái)是什么類型的
