猿问

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";
    }

获取路径的代码写了两份 ,感觉好臃肿啊,怎么让只写一份,然后给共用?

幕布斯6054654
浏览 522回答 3
3回答

MMMHUHU

1.首先中间件概念你没弄清楚,不能乱用2.回到你的问题,就是一个方法抽取的场景,建议看一下<<代码重构>>这本书

手掌心

代码随便重构一下就好看多了 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; }
随时随地看视频慕课网APP

相关分类

Java
我要回答